当前位置: 首页 > 面试题库 >

列表显示Django中的多对多

诸正谊
2023-03-14
问题内容
class PurchaseOrder(models.Model):
    product = models.ManyToManyField('Product')
    vendor = models.ForeignKey('VendorProfile')
    dollar_amount = models.FloatField(verbose_name='Price')


class Product(models.Model):
   products = models.CharField(max_length=256)

   def __unicode__(self):
       return self.products

我有那个代码。不幸的是,该错误来自admin.py,其中包含ManyToManyField

class PurchaseOrderAdmin(admin.ModelAdmin):
    fields = ['product', 'dollar_amount']
    list_display = ('product', 'vendor')

错误提示:

“ PurchaseOrderAdmin.list_display [0]”,“产品”是不支持的ManyToManyField。

然而,当我把它编译'product'出来list_display。那么,如何'product'list_display不显示错误的情况下显示?

编辑:也许一个更好的问题是你如何显示ManyToManyFieldlist_display


问题答案:

你可能无法直接执行此操作。从文档list_display

不支持ManyToManyField字段,因为这将需要为表中的每一行执行一个单独的SQL语句。如果仍然要执行此操作,请为模型提供一个自定义方法,然后将该方法的名称添加到list_display。(有关list_display中的自定义方法的更多信息,请参见下文。)

你可以执行以下操作:

class PurchaseOrderAdmin(admin.ModelAdmin):
    fields = ['product', 'dollar_amount']
    list_display = ('get_products', 'vendor')

    def get_products(self, obj):
        return "\n".join([p.products for p in obj.product.all()])

或定义一个模型方法,并使用该方法

class PurchaseOrder(models.Model):
    product = models.ManyToManyField('Product')
    vendor = models.ForeignKey('VendorProfile')
    dollar_amount = models.FloatField(verbose_name='Price')

    def get_products(self):
        return "\n".join([p.products for p in self.product.all()])

并在管理员 list_display

list_display = ('get_products', 'vendor')


 类似资料:
  • 我使用带thymeleaf 3的Spring靴 我试着展示一个豆子 在我的控制器里我有 在我的车里 在我的位置 在我的胸腺碎片中 当我试图显示这个片段时,我得到 org.attoparser。ParseException:异常评估SpringEL表达式:“cities.id”由:org.springframework.expression.spel引起。SpelEvaluationExceptio

  • 每次文本更改后都会调用onQueryTextChange,但搜索结果只显示一次。当输入和时,RecyclerView显示和(必须按Enter才能启动是否正常?),但当我输入时,显示的项目保持不变。

  • 我有这个对象显示在一个组合框中: 我想把这个列表显示到一个组合框中。 问题是如何将组的名称从对象显示到组合框中?

  • 本文向大家介绍Django框架中的对象列表视图使用示例,包括了Django框架中的对象列表视图使用示例的使用技巧和注意事项,需要的朋友参考一下 direct_to_template 毫无疑问是非常有用的,但Django通用视图最有用的地方是呈现数据库中的数据。 因为这个应用实在太普遍了,Django带有很多内建的通用视图来帮助你很容易 地生成对象的列表和明细视图。 让我们先看看其中的一个通用视图:

  • 我在Wordpress中有一个文章网格,下面是按类别排序的默认方法: 有办法把这个变成下拉列表吗?我为类似的情况找到了不同的解决方案,但它们都有作为无序列表的好处(ul li)。我的只是一堆链接。

  • 问题内容: 我在MySQL数据库中有以下数据: 我现在正在使用PHP工作,但是在使用C#,Java和其他语言时,却多次遇到此问题。 现在,我过去和现在的目标是以以下格式显示数据: 在创建一个代表我的SQL表的类之前,我已经解决了这个问题。然后我创建了一个hold和class。 我正在跳过步骤,但我希望您能理解我的意思。我可能只需要用什么关键字来称呼这种类型的问题。完成此操作的首选方式是什么? 问题