Python 如何在Django管理中创建类似堆栈内联但没有外键的东西?
如何在Django管理中创建类似堆栈内联但没有外键的东西?Python 如何在Django管理中创建类似堆栈内联但没有外键的东西?,python,django,Python,Django,如何在Django管理中创建类似堆栈内联但没有外键的东西? 如果我查看管理页面中的数据对象,我还想查看其他数据对象(属于同一用户)如果您想管理同一表单上的数据和其他数据,那么: 在管理员和管理员界面中使用用户模型 在Data和OtherData上添加两个堆栈内联线 排除用户的所有文件,或仅将用户名作为 仅供参考 您可能需要注销用户模型,然后重新注册 因为,据我所知,它只能注册一次 下面是一个示例代码 class Data(models.Model): user = models.Fore
如果我查看管理页面中的
数据
对象,我还想查看其他数据
对象(属于同一用户)如果您想管理同一表单上的数据和其他数据,那么:
class Data(models.Model):
user = models.ForeignKey(User, unique=True)
name = models.CharField(null=False, max_length=250)
class OtherData(models.Model):
user = models.ForeignKey(User, unique=True)
something = models.CharField(max_length=250)
如果用户有多个数据或其他数据,则可能需要尝试使用表格行。换句话说,如果模型中有一对多关系。内联线的灵活性令人难以置信。我不确定我是否理解这个问题。但是,如果您希望管理同一表单上的数据和其他数据,那么(1)在admin中使用用户模型,(2)在Data和其他数据上添加两个堆栈内联线。最后,(3)排除用户的所有文件,不用担心。我发布了我的评论,作为一个带有示例代码的答案。
from django.contrib.admin import StackedInline
from django.contrib.auth.models import User
from models import Data, OtherData
class DataInline(StackedInline):
model = Data
#form = you can customize your form
#max_number = define the number of inlines
class OtherDataInline(StackedInline):
model = OtherData
class UserAdmin(admin.ModelAdmin):
inlines = (DataInline, OtherDataInline,)
fields = ('username',)
readonly_fields = ('username',)
#the user can be regitered just once in the admin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)