【问题标题】:Display fields from one model in another in Django Admin connected with a Foreignkey在与外键连接的 Django Admin 中显示另一个模型中的字段
【发布时间】:2020-10-09 01:34:38
【问题描述】:

我有两种模型,一种用于上传文件,一种用于 cmets。我现在想在每个上传文件的管理视图中显示 cmets。例如,如果我上传一个文件 TestFile1,一旦我在 在 Django admin 中上传的视图,我想要所有与该文件关联的 cmets。这可能吗?

class Uploaded(models.Model):
    objects: models.Manager()
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="users")
    file = models.FileField(upload_to=user_directory_path)


    def __str__(self):
        return f"{self.description} {self.file}" 

class Comment(models.Model):
  objects: models.Manager()
  file = models.ForeignKey('Uploaded', on_delete=models.CASCADE, related_name='comments')
  text = models.TextField()

  def __str__(self):
    return self.text

【问题讨论】:

    标签: django


    【解决方案1】:

    是的,你需要写InlineModelAdmin for your models。

    在你的情况下,这将是这样的:

    from django.contrib import admin
    
    class CommentInlineAdmin(admin.TabularInline):
      model = Comment
    
    class UploadedAdmin(admin.ModelAdmin):
      inlines = [CommentInlineAdmin]
    
    admin.register(Uploaded, UploadedAdmin)
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 2015-03-27
      • 2021-12-19
      • 2013-08-28
      • 2011-03-14
      • 1970-01-01
      相关资源
      最近更新 更多