我是django的新手,我使用的是1.11版本
我有几个模型,一些与外键相关,一些与oneToOne关系
例如用户和个人资料模型,我想在用户表单中添加个人资料表单字段
怎么样?
对于oneToOne,我有一个带有与用户模型相关的oneToOne字段的管理模型。但不仅仅是管理员,我有几种类型的用户(管理员,编写者,commetator,...)每个在不同的模型中,当创建一个类型我也创建其相关的用户,所以当我在管理员中创建编写器表单我创建一个管理员,但我也想拥有用户的模型字段,以便我从作者的表格中创建两个
在AdminAdmin ie:管理模型我想在管理模板中显示的表单中添加用户的字段
from django.contrib import admin
from .models import User, Admin
class UserInline(admin.StackedInline):
model = User
fields = ['username', 'first_name', 'last_name']
class AdminAdmin(admin.ModelAdmin):
model = Admin
list_display = ['getUsername']
inlines = [UserInline]
def getUsername(self, obj):
return obj.user.username
getUsername.short_description = "Nom d'utilisateur"
admin.site.register(Admin, AdminAdmin)
此代码生成错误“:(admin.E202)'common.User'没有ForeignKey到'common.Admin'。”
答案 0 :(得分:0)
使用此设置:
Class A(models.Model):
# ...
nameField = models.CharField(max_length=100, ...)
# ...
pass
Class B(models.Model)
# ...
fk = models.ForeignKey(A)
# ...
Class C(models.Model):
# ...
oto = models.OneToOneKeyField(A)
您可以使用ForeignKey
+ __
+ FieldName
访问已模拟的模型字段。例如。您可以从相关模型访问模型A的名称字段:
<强>乙强>
'fk__name'
<强> C 强>
'oto__name'