- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我创建它的实例时,我试图扩展用户模型以向我的“人”模型添加额外的属性,但我不断收到以下错误:
ERRORS:
<class 'polls.admin.PersonAdmin'>: (admin.E108) The value of 'list_display[4]' refers to 'age', which is not a callable, an attribute of 'PersonAdmin', or an attribute or method on 'auth.User'.
<class 'polls.admin.PersonAdmin'>:(admin.E108) The value of 'list_display[5]' refers to 'city', which is not a callable, an attribute of 'PersonAdmin', or an attribute or method on 'auth.User'.
<class 'polls.admin.PersonAdmin'>: (admin.E108) The value of 'list_display[6]' refers to 'state', which is not a callable, an attribute of 'PersonAdmin', or an attribute or method on 'auth.User'.
人物模型:
class Person(models.Model):
""" The model which defines a user of the application. Contains important
information like name, email, city/state, age, etc """
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
city = models.CharField(max_length=200, null=True)
state = models.CharField(max_length=200, null=True)
age = models.CharField(max_length=50, null=True)
创建帐户 View :
def create_account(request):
# function to allow a user to create their own account
if request.method == 'POST':
# sets a new user and gives them a username
new_user = User(username = request.POST["username"],
email=request.POST["email"],
first_name=request.POST["first_name"],
last_name=request.POST["last_name"],
age=request.POST["age"],
city=request.POST["city"],
state=request.POST["state"]
)
# sets an encrypted password
new_user.set_password(request.POST["password"])
new_user.save()
# adds the new user to the database
Person.objects.create(user=new_user,
first_name=str(request.POST.get("first_name")),
last_name=str(request.POST.get("last_name")),
email=str(request.POST.get("email")),
age=str(request.POST.get("age")),
city=str(request.POST.get("city")),
state=str(request.POST.get("state"))
)
new_user.is_active = True
new_user.save()
return redirect('../')
else:
return render(request, 'polls/create_account.html')
admin.py 的片段:
class PersonInline(admin.StackedInline):
""" Details a person in line. """
model = Person
can_delete = False
verbose_name_plural = 'person'
class PersonAdmin(admin.ModelAdmin):
""" Defines a Person's information on the admin site
with displays listed below. """
list_display = ('username', 'email', 'first_name', 'last_name', 'age', 'city', 'state')
inlines = (PersonInline, )
关于如何让它工作的任何想法?
最佳答案
您不能使用 admin.site.register(User, PersonAdmin)
,因为 User
和 Person
不是同一个模型。此外,您似乎正试图在用户管理中包含这些 Person 模型字段:
from django.contrib.auth.admin import UserAdmin
class PersonInline(admin.StackedInline):
""" Details a person in line. """
model = Person
can_delete = False
verbose_name_plural = 'person'
fields = ('username', 'email', 'first_name', 'last_name', 'age', 'city', 'state')
class UserAdmin(UserAdmin):
inlines = [
PersonInline
]
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
关于python - Django:list_display[4] 的值指的是 'age' ,它不是可调用的,等等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969299/
我想通过不同的权限自定义 list_display。例如,super 可以看到“价格”,其他则不能。管理员.py class bookAdmin(admin.ModelAdmin): def
我有 2 个应用程序:Visitors和 Meetings ,通过 ManytoMany 链接 field : 访客/models.py: from django.db import models f
这是 models.py 的片段 class Applicant(models.Model): name = models.CharField(...) email = models.
我在 Django >= 1.6 文档中阅读: "The field names in list_display will also appear as CSS classes in the HTML
models.py 中有一个名为Employees 的类 class Employees(models.Model): employee_id = models.CharField(verbo
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Can “list_display” in a Django ModelAdmin display attr
我想在 Django Admin 的 list_display 中添加“annotation count”字段。 模型.py class Log(models.Model): ...
Closed. This question does not meet Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Ov
我刚刚开始使用 Django 管理 View ,开始时,我试图做一些非常简单的事情:使用 list_display 显示对象列表中的几个字段,如下所述:https://docs.djangoproje
我尝试在 Django 管理端的列表显示中显示带有换行符的文本。 class MyModelAdmin(admin.ModelAdmin): list_display = ('example'
需要在 admin list_display 中截断文本 在管理模型中有以下内容但仍显示全文。 from django.template.defaultfilters import truncatew
我有两个模型和一个管理模型: class Person(models.Model): firstname = models.CharField(maxlength=50) surnam
我正在尝试在 list_display 上显示 TextField 的前 10 个字符。 可以在管理界面中吗? 最佳答案 您可以定义一个返回字段前 10 个字符的可调用函数,并将其添加到 list_d
如果状态 = 已关闭,则尝试更改背景颜色。 当我尝试下面的代码时,结果以 html 而不是实际颜色显示。 ##Mode.py from django.template.defaultfilters i
我有两个模型: class Person(models.Model): person_name = models.CharField(max_length=255) def __uni
我有以下代码: #models.py class Repair(models.Model): products = models.ManyToManyField(Product) de
我正在尝试使用 Django 的官方教程。特别是 modeladmin list_display: http://docs.djangoproject.com/en/1.2/intro/tutoria
在我的主网站(管理页面之外)中获得 list_display 功能的最简单方法是什么。 我有一组元素我想选择并执行一个 Action 。有什么想法吗? 最佳答案 名为 django-filter 的应
class CDR(models.Model): order = models.ForeignKey(Order) call = models.ForeignKey(Call)
有没有像 get_list_display() 这样的管理模型方法,或者我可以有一些条件来设置不同的 list_display 值? class FooAdmin (model.ModelAdmin)
我是一名优秀的程序员,十分优秀!