Django无法分配“x”:“y”必须是“z”`

2024-09-29 01:18:47 发布

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

我收到以下错误:

Internal Server Error: /change_chosenCharity/

ValueError at /change_chosenCharity/
Cannot assign "19L": "Profile.chosenCharity" must be a "Charity" instance.

从以下观点来看:

^{pr2}$

Django的post结果显示:

POST:
currentCharities = u'19'

19岁绝对是慈善机构的一个例子。我以前也遇到过这个问题,而且总是比较快地解决它。我已经在这里找过了,但找不到解决我问题的办法。任何帮助都将不胜感激。在

其他信息:

HTML表单:

  <form class="form-horizontal" role="form" method="post" action="">
    {% csrf_token %}
    <fieldset>
      <div class="form-group">
        <label class="col-sm-4 control-label">{{ form.currentCharities.label }}:</label>
        <div class="col-sm-8">
          {{ form.currentCharities }}
          <div class="text-danger">
            {% for error in form.currentCharities.errors %}{{ error }}<br/>{% endfor %}
          </div>
        </div>
      </div>
      <div class="form-group">
        <div class="text-right col-sm-12">
          <button type="submit" class="btn btn-primary">Change Charity</button>
        </div>
      </div>
    </fieldset>
  </form>

DJANGO型号:

class Charity(models.Model):
    name = models.CharField(max_length=50, unique=True)
    website = models.URLField()
    enabled = models.BooleanField(default=True)

    def __unicode__(self):
        return self.name

    class Meta:
        ordering = ['name']
        verbose_name_plural = 'charities'

形式:

class updateCharity(BootstrapForm):

    currentCharities = forms.ModelChoiceField(queryset=Charity.objects.filter(enabled=1), empty_label=None,widget=forms.Select(attrs={"class": "select-format"}))
    currentCharities.label = "Charity Options"


    def clean(self):
        cleaned_data = self.cleaned_data # individual field's clean methods have already been called
        return cleaned_data

Tags: nameselfdivformdatamodelscolchange
1条回答
网友
1楼 · 发布于 2024-09-29 01:18:47

您可以更新相关的对象实例:

charity = chosenCharityQuery[0]
created = Profile.objects.update_or_create(
            user_id=currentUserID,
            defaults={'chosenCharity': charity},
        )

或更新相关字段的id:

^{pr2}$

相关问题 更多 >