在CreateVi中,'\u proxy''object没有'get'属性

2024-04-29 19:46:38 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我认为这不是正确的做法,但我正在努力学习django,我正在尝试一些东西。我正试图为我的Formula模型设置外键,方法是在maker的实例中进行硬编码。

型号:

class Cooker(models.Model):
    name = models.CharField(max_length=20, name="name")
    background = models.CharField(max_length=500, name="background")


class Formula(models.Model):
    food = models.CharField(max_length=200, name="food")
    maker = models.ForeignKey(Cooker, related_name="cooker_key")

视图

class CookerCreate(CreateView):
    template_name = "cookercreate.html"
    model = Cooker
    fields = ['name','background']
    success_url = reverse_lazy('cooker')

class FormulaCreate(CreateView):
    template_name = "formulahome.html"
    model = Formula
    fields = ['food']
    success_url = reverse_lazy('formulahome')

    def form_valid(self, form):
        self.object = form.save(commit = False)
        self.object.maker = Cooker.objects.get(pk=1)
        form.save()
        return reverse_lazy('formula home')

在设置FormulaCreate类中,我只想在已经创建的Cooker中硬编码。谢谢

编辑:当我试图在我的FormulaCreate(CreateView)中提交表单时,我得到错误Exception Value: '__proxy__' object has no attribute 'get'


Tags: nameformfoodmodelslengthlazymaxclass