我发现自己陷入了处理Django模型选择字段并做出选择的反应。愿有人帮助。这是我的模型代码:
class AccountType(models.Model):
category = models.SmallIntegerField(
choices=(
(AccountCategories.ASSET, "Asset"),
(AccountCategories.LIABILITY, "Liability"),
(AccountCategories.EQUITY, "Equity"),
(AccountCategories.REVENUE, "Revenue"),
(AccountCategories.EXPENSE, "Operating Expense"),
)
)
classification = models.SmallIntegerField(
choices=(
(AccountClassifications.NONE, ""),
(AccountClassifications.CURRENT, "Current"),
(AccountClassifications.NONCURRENT, "Long-Term"),
)
)
我似乎无法弄清楚如何使这些选择成为我在React表单中的选择选项。我在想也许解决方案可能是在序列化器中验证或清除这些选择,但是我仍然特别关注如何与React Form链接。提前致谢
所以我想起了Beazley关于Python内置SuperHeros的教程或类似的东西,并提出了这个解决方案。就DRY原则而言,可能不是最好的方法,但它就像一种魅力,对于任何在同一问题上苦苦挣扎且无可奈何的人,我就是这样做的:
ACCOUNT_TYPES_CATEGORY_CHOICES = [
(100, 'Do Not Choose Me'),
(0, 'Asset'),
(1, 'Liability'),
(2, 'Equity'),
(3, 'Revenue'),
(4, 'Operating Expense')
]
我将选择放在单独的文件中。
class AccountType(models.Model):
class Meta:
ordering = ['order']
objects = AccountTypeManager()
category = models.IntegerField(choices=ACCOUNT_TYPES_CATEGORY_CHOICES)
classification = models.IntegerField(choices=ACCOUNT_TYPES_CLASSIFICATION_CHOICES)
我导入了文件并将其放入模型中,并称为python manage.py makemigrations
class AccountingPeriodsChoicesAPIView(views.APIView):
def get(self, request, format=None):
my_choices = []
choice_dict = dict(ACCOUNTING_PERIODS_CHOICES)
for key, value in choice_dict.items():
itered_dict = {"key": key, "value": value}
my_choices.append(itered_dict)
return Response(my_choices, status=status.HTTP_200_OK)
我为此创建了一个api端点。我知道这可能需要太多工作,但确实可以。将其转换为字典,然后通过.items()对其进行解压缩,然后分配值和键,然后在Response中将其返回即可。将其称为终结点使我可以在redux状态下对其进行管理,并可以执行其应做的事情。Violla !!!!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句