猿问

类型错误:“DeferredAttribute”对象不可迭代

在我的 models.py 中,我有以下课程:


class AvailabilityTypes():

    STUDYING = 'STUDYING'

    WORKING = 'WORKING'

    SEARCHING = 'SEARCHING'

    FREELANCER = 'FREELANCER'


    types = (

        (STUDYING, 'Estudando'),

        (WORKING, 'Trabalhando'),

        (SEARCHING, 'Procurando por emprego'),

        (FREELANCER, 'Freelancer')

    )


    def get_types(self):

        return self.types.all()

我想在 Django 表单中显示这些选项。在我的 forms.py 文件中,我有以下一段代码:


from django import forms

from .models import AvailabilityTypes


[...]


availability = forms.CharField(

        widget=forms.ChoiceField(

            choices=(AvailabilityTypes.types)

        )

    )

但我得到了错误TypeError: 'DeferredAttribute' object is not iterable。我究竟做错了什么?另外,如果我尝试使用:


availability = forms.CharField(

        widget=forms.ChoiceField(

            choices=(AvailabilityTypes.get_types())

        )

    )

我收到错误 TypeError: get_types() missing 1 required positional argument: 'self'.


我是 Django 和 Python 的新手,我可以使用一些灯。谢谢你。


拉丁的传说
浏览 449回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答