Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django管理中创建类似堆栈内联但没有外键的东西?_Python_Django - Fatal编程技术网

Python 如何在Django管理中创建类似堆栈内联但没有外键的东西?

Python 如何在Django管理中创建类似堆栈内联但没有外键的东西?,python,django,Python,Django,如何在Django管理中创建类似堆栈内联但没有外键的东西? 如果我查看管理页面中的数据对象,我还想查看其他数据对象(属于同一用户)如果您想管理同一表单上的数据和其他数据,那么: 在管理员和管理员界面中使用用户模型 在Data和OtherData上添加两个堆栈内联线 排除用户的所有文件,或仅将用户名作为 仅供参考 您可能需要注销用户模型,然后重新注册 因为,据我所知,它只能注册一次 下面是一个示例代码 class Data(models.Model): user = models.Fore

如何在Django管理中创建类似堆栈内联但没有外键的东西?
如果我查看管理页面中的
数据
对象,我还想查看
其他数据
对象(属于同一用户)

如果您想管理同一表单上的数据和其他数据,那么:

  • 在管理员和管理员界面中使用用户模型
  • 在Data和OtherData上添加两个堆栈内联线
  • 排除用户的所有文件,或仅将用户名作为 仅供参考
  • 您可能需要注销用户模型,然后重新注册 因为,据我所知,它只能注册一次
  • 下面是一个示例代码

    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)