首页 > 解决方案 > 如何根据在 Django 的 ModelChoiceField 中选择的值命名模型实例?

问题描述

我有 Django 的问题。我有 Typy 类,我想根据用户名和字段match_to_bet来命名这个类的实例,它是 ModelChoiceField 并且是从基础生成的。

class Typy(models.Model):
    users = (('user_1', 'user_1'),
        ('user_2', 'user_2'))
    user = models.CharField(max_length=10, blank=True, choices=users)

    mecz = models.ForeignKey('Mecz', on_delete=models.CASCADE, default=0)
    choice = Mecz.objects.values()
    match_to_bet = ModelChoiceField(queryset=choice, empty_label=None)

    bet_home = models.BigIntegerField()
    bet_away = models.BigIntegerField()

    def __str__(self):
        return str(self.user) + '_' + str(self.match_to_bet.__str__())

到目前为止,我得到了带有对象地址的名称,但不知道如何更改代码以获取在match_to_bet当前实例名称中选择的名称' user'_'option

标签: pythondjango

解决方案


ModelChoiceField 用于表单而不是模型。

您想要具有选择属性的 CharField 或 IntegerField。

然后你可以做 get_fieldname_display()


推荐阅读