Django中FK的专业过滤

时间:2017-07-03 16:51:06

标签: django django-models

我正在构建一个应用程序来跟踪设施中的生产。我有一个表示输入的模型和一个表示过程的模型,过程模型对输入模型有一个FK。

def Inputs(models.Model):
    description = models.CharField(max_length=30)
    date = models.DateField()
    in_stock = models.BooleanField()

def Process(models.Model):
    date =  models.DateField()
    input_item = models.ForeignKey("Inputs")

我希望能够过滤在流程模型的管理表单中显示的输入列表。我已经想出了怎么做。 (在Django Docs中找到);

class ProcessAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "input_items":
            kwargs["queryset"] = Inputs.objects.filter(in_stock=True)
        return super(ProcessAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

问题如下;我想根据当前库存中的输入过滤可用的模型,但我还希望能够访问记录不再有库存的项目的旧记录。当我尝试访问旧记录时,当前设置不会显示这些项目。

0 个答案:

没有答案