【问题标题】:join two tables using another relation table in Django使用 Django 中的另一个关系表连接两个表
【发布时间】:2015-05-01 18:24:34
【问题描述】:

我在管理面板中遇到了 list_display 的问题。

class Categories(models.Model):
      cat_id = models.IntegerField(primary_key=True)
      cat_name = models.CharField(_('category name'), max_length=50)

      def __unicode__(self):
          return self.cat_name

class Stories(models.Model):
      story_id = models.IntegerField(primary_key=True)
      story_title = models.CharField(max_length=500)
      story_desc = models.TextField()
      cover_image = models.CharField(max_length=500)
      date_of_creation = models.DateTimeField(auto_now_add=True)
      date_of_publish = models.DateTimeField(auto_now=True)

      def __unicode__(self):
           return self.story_title

class Relation(models.Model):
      tbl_id = models.IntegerField(primary_key=True)
      story_id = models.ForeignKey(Stories)
      cat_id = models.ForeignKey(Categories)

我想在 mysql 中使用关系表连接两个表,Stories 和 categories。但我不想要关系表中的任何列。

另外,我想在管理面板中列出-

class StoryAdmin(admin.ModelAdmin):
     list_display = (story_title, story_desc, date_of_creation, cat_name)

admin.site.register(Relation, StoryAdmin)

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    您可以使用ManyToMany 字段管理您的关系。此外,您获取 cat_name 的方式也是错误的,因为该属性不属于 Story 表。您应该创建一个函数来获取一个故事的所有类别(即字符串连接),然后将该函数添加到 list_display

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      相关资源
      最近更新 更多