【问题标题】:Django admin - add custom app which displays existing 'User' data?Django admin - 添加显示现有“用户”数据的自定义应用程序?
【发布时间】:2015-10-04 00:26:53
【问题描述】:

我需要待定用户(在上图中)在用户中显示相同的数据,即。 添加用户时,也应添加到待处理用户中。

这是我的 models.py:

from django.db import models
from django.contrib.auth.models import User


class PendingUser(models.Model):
    user = models.ForeignKey(User)

我尝试在 pending app 的 admin.py 中添加这个: 但它不起作用

from django.contrib import admin
from django.contrib.admin.sites import AdminSite, site
from pending.models import PendingUser
from django.contrib.auth.models import User

class PendingUserAdmin(admin.ModelAdmin):
    list_display = ('username', 'email', 'first_name', 'last_name', )
    def username(self, request):
            return User.objects.get('username')

    def email(self, request):
            return User.objects.get('email')

    def first_name(self, request):
            return User.objects.get('first_name')

    def last_name(self, request):
            return User.objects.get('last_name')

admin.site.register(PendingUser, PendingUserAdmin)

当我尝试进行迁移时,出现此错误:You are trying to add a non-nullable field 'user' to pendinguser without a default; we can't do that (the database needs something to populate existing rows). 怎么了?有没有其他方法可以做到这一点?

【问题讨论】:

  • 1.我会说这个错误很清楚:您需要某种默认值来为现有行放入用户列。当然,如果您不关心数据,则可以在迁移之前删除全部数据。 2. admin 类中的所有方法都是完全废话,你应该完全删除它们。

标签: python django django-admin models


【解决方案1】:

有很多错误。 PendingUser 和 User 不相关。

  1. Model PendingUser 与 User (django.contrib.auth.models.Users) 没有关系。
  2. User.objects.get(user__id =request.id).username。您不会在请求中获得 id (request.id)。这部分user__id 不是根据 id 过滤用户的英寸数的正确方法。正确的方法是User.objects.get(id=some_id)

【讨论】:

  • 好的,谢谢,如何创建关系?你能建议任何方法吗?
  • 嗨,我已经按照您的建议进行了更改,但它给出了错误:pending.PendingUser.user: (fields.E300) Field defines a relation with model 'User', which is either not installed, or is abstract.
  • 从 user = models.ForeignKey('User') 行中的 'User' 中删除 ' 符号
猜你喜欢
  • 2020-03-09
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2011-04-25
  • 2018-11-27
相关资源
最近更新 更多