Python 仅列出Django中多对多字段的未赋值值

Python 仅列出Django中多对多字段的未赋值值,python,django,manytomanyfield,Python,Django,Manytomanyfield,我有以下两种型号: class Fruit(models.Model): name = models.CharField(max_length=20) class Season(models.Model): name = models.CharField(max_length=20) fruits = models.ManyToManyField(Fruit, related_name='seasonal_fruit') 如果水果没有分配给任何其他季节对象,我想将它们

我有以下两种型号:

class Fruit(models.Model):
    name = models.CharField(max_length=20)

class Season(models.Model):
    name = models.CharField(max_length=20)
    fruits = models.ManyToManyField(Fruit, related_name='seasonal_fruit')
如果水果没有分配给任何其他
季节
对象,我想将它们添加到
季节
对象中

另外,我想在
seasureadmin
中显示这些不同的(即未分配给任何其他
seasure
对象)列表

我如何才能做到这一点?

  • 您需要遵循以下步骤:
  • 更新Admin.py文件,如下所示:

谢谢我确实对这段代码做了一些调整,以使其适用于管理员。:)
class SeasonAdmin(admin.ModelAdmin):
    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "fruit":
            f = [x for x in Fruit.objects.all()]
            s = [y for y in Season.objects.all()]
            for a in y:
                for b in y.fruit.all():
                    f.remove(b)
            kwargs["queryset"] = f
        return super().formfield_for_manytomany(db_field, request, **kwargs)