Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django表单:表单提交后未保存字段_Django_Django Models_Django Forms - Fatal编程技术网

Django表单:表单提交后未保存字段

Django表单:表单提交后未保存字段,django,django-models,django-forms,Django,Django Models,Django Forms,我有一个表单,它有2个模型选择字段和1个选择字段。表单提交后,ModelChoiceFields会保存,但ChoiceFields不会保存。未保存的字段是条件字段 视图中的表单。py: class TradeCreateForm(LoginRequiredMixin, forms.Form): the_game_you_own = forms.ModelChoiceField( queryset=Game.objects.all(), to_field_n

我有一个表单,它有2个模型选择字段和1个选择字段。表单提交后,ModelChoiceFields会保存,但ChoiceFields不会保存。未保存的字段是
条件
字段

视图中的表单。py:

class TradeCreateForm(LoginRequiredMixin, forms.Form):
    the_game_you_own = forms.ModelChoiceField(
        queryset=Game.objects.all(),
        to_field_name='owned',
        widget=autocomplete.ModelSelect2(
            url='game-autocomplete',
            attrs={
                'data-minimum-input-length': 2, #res, sp
            },
        )
    )

    condition = forms.ChoiceField(choices=Trade.CONDITION_CHOICES, initial='OK - 1 or 2 small scratches', label='...', required=True)

    the_game_you_want_in_exchange = forms.ModelChoiceField(
        queryset=Game.objects.all(),
        to_field_name='desired',
        widget=autocomplete.ModelSelect2(
            url='game-autocomplete',
            attrs={
                'data-minimum-input-length': 2,
            },
        )
    )
class Trade(models.Model):
    CONDITION_CHOICES = (
        ('Bad - A lot of scratches', 'Bad - A lot of scratches'),
        ('OK - 1 or 2 small scratches', 'OK - 1 or 2 small scratches'),
        ('Good - No scratches, 1 or 2 smudges', 'Good - No scratches, 1 or 2 smudges'),
        ('Perfect - No scratches, no smudges', 'Perfect - No scratches, no smudges'),
    )

    name = models.TextField() # Unrestricted text
    created_date = models.DateTimeField(default=timezone.now)   
    owned_game = models.ForeignKey(Game, on_delete=models.CASCADE, related_name='owned_game', db_column='owned_game')
    condition = models.CharField(max_length=50, choices=CONDITION_CHOICES)

    desired_game = models.ForeignKey(Game, on_delete=models.CASCADE, related_name='desired_game', db_column='desired_game')

    def get_trade_name(self):
        return ''.join([self.user_who_posted.username, '(', timezone.now().strftime("%b %d, %Y %H:%M:%S UTC"), ')'])

    def save(self, *args, **kwargs):
        self.name = self.get_trade_name()
        super(Trade, self).save(*args, **kwargs)

    def __str__(self):
        return self.name # return game name when game.objects.all() is called
型号。py:

class TradeCreateForm(LoginRequiredMixin, forms.Form):
    the_game_you_own = forms.ModelChoiceField(
        queryset=Game.objects.all(),
        to_field_name='owned',
        widget=autocomplete.ModelSelect2(
            url='game-autocomplete',
            attrs={
                'data-minimum-input-length': 2, #res, sp
            },
        )
    )

    condition = forms.ChoiceField(choices=Trade.CONDITION_CHOICES, initial='OK - 1 or 2 small scratches', label='...', required=True)

    the_game_you_want_in_exchange = forms.ModelChoiceField(
        queryset=Game.objects.all(),
        to_field_name='desired',
        widget=autocomplete.ModelSelect2(
            url='game-autocomplete',
            attrs={
                'data-minimum-input-length': 2,
            },
        )
    )
class Trade(models.Model):
    CONDITION_CHOICES = (
        ('Bad - A lot of scratches', 'Bad - A lot of scratches'),
        ('OK - 1 or 2 small scratches', 'OK - 1 or 2 small scratches'),
        ('Good - No scratches, 1 or 2 smudges', 'Good - No scratches, 1 or 2 smudges'),
        ('Perfect - No scratches, no smudges', 'Perfect - No scratches, no smudges'),
    )

    name = models.TextField() # Unrestricted text
    created_date = models.DateTimeField(default=timezone.now)   
    owned_game = models.ForeignKey(Game, on_delete=models.CASCADE, related_name='owned_game', db_column='owned_game')
    condition = models.CharField(max_length=50, choices=CONDITION_CHOICES)

    desired_game = models.ForeignKey(Game, on_delete=models.CASCADE, related_name='desired_game', db_column='desired_game')

    def get_trade_name(self):
        return ''.join([self.user_who_posted.username, '(', timezone.now().strftime("%b %d, %Y %H:%M:%S UTC"), ')'])

    def save(self, *args, **kwargs):
        self.name = self.get_trade_name()
        super(Trade, self).save(*args, **kwargs)

    def __str__(self):
        return self.name # return game name when game.objects.all() is called

我忘了我正在表单的action方法中调用的函数中处理这个对象的更新