Django 如何通过管理界面在一个页面上显示两个不相关的模型?

Django 如何通过管理界面在一个页面上显示两个不相关的模型?,django,model,django-admin,Django,Model,Django Admin,我有两种型号,没有外键连接。我想在管理界面的一个页面上显示它们,就像Django中的内联线一样 我不能将PostFile与Post关联,因为上传的媒体应该可以用于过去和将来创建的每个Post。如果内联线不可用,我不知道我能做什么 class Post(models.Model): STATUS_CHOICES = ( ('draft', 'Draft'), ('published', 'Published') ) title = mod

我有两种型号,没有外键连接。我想在管理界面的一个页面上显示它们,就像Django中的内联线一样

我不能将PostFile与Post关联,因为上传的媒体应该可以用于过去和将来创建的每个Post。如果内联线不可用,我不知道我能做什么

class Post(models.Model):

    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published')
    )

    title = models.CharField(max_length=255)
    slug = models.SlugField(max_length=255, unique_for_date='publish_date', blank=True)
    author = models.ForeignKey(User, related_name='blog_posts', on_delete=models.CASCADE, blank=True)
    content = MarkdownxField()
    publish_date = models.DateTimeField(default=timezone.now)
    creation_date = models.DateTimeField(auto_now_add=True)
    last_update_date = models.DateField(auto_now=True)
    status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
    tags = models.ManyToManyField(Tag)
    objects = models.Manager()

    class Meta:
        ordering = [
            '-publish_date'
        ]

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super(Post, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('blog:post_detail',
                       args=[
                           self.publish_date.strftime('%Y'),
                           self.publish_date.strftime('%m'),
                           self.publish_date.strftime('%d'),
                           self.slug
                       ])

    #https://github.com/neutronX/django-markdownx/issues/83

    def formatted_markdown(self):
        return markdownify(self.content)


class PostFile(models.Model):

    file_name = models.CharField(max_length=200, blank=True)
    file_object = models.FileField(upload_to='post_files/')
    file_upload_date = models.DateTimeField(auto_now_add=True)

    def save(self, *args, **kwargs):
        if not self.file_name:
            self.file_name = self.file_object.name
        super(PostFile, self).save(*args, **kwargs)

    def file_url(self):
        return self.file_object.url

    def __str__(self):
        return self.file_name

我希望在输出中收到一个Post模型管理页面,在底部我列出了所有PostFile对象。这将使我能够轻松快速地访问媒体文件夹上的PostFile对象url。我不希望每次都打开新选项卡,并转到PostFile模型管理员页面检查对象的url。

您可以使用自定义Django表单并将其传递给该模型管理员
class-CourseAdmin(admin.ModelAdmin):form=CourseForm
您可以使用自定义Django表单并将其传递给该模型管理员<代码>类CourseAdmin(admin.ModelAdmin):form=CourseForm