#django #django-models #django-views #hardcode
#django #django-модели #django-представления #жесткий код
Вопрос:
Я пытаюсь жестко закодировать следующее, на мой взгляд, в целях тестирования. Как мне это сделать, не сталкиваясь с ошибкой?
Мое мнение:
`определение create(запрос): form= PlayForm(запрос.ОПУБЛИКОВАТЬ или нет), если form.is_valid():
play = form.save(commit=False)
play.track = 2
play.save()
request.user.message_set.create(message='Play Was created')
if 'next' in request.POST:
next = request.POST['next']
else:
next = reverse('coup_show')
return HttpResponseRedirect(next)
return render_to_response(
'dash/create.html',
{'form':form},
context_instance = RequestContext(request)`
Моя модель:
class Play(models.Model):
track = models.ForeignKey(Track,null=True, related_name='track_creator_set')
Когда я пытаюсь это сделать, я получаю следующую ошибку…
Cannot assign "2": "Play.track" must be a "Track" instance.
Ответ №1:
Попробуйте это:
play.track = Track.objects.get(pk=2)
Вам нужно назначить экземпляр модели дорожки, а не просто pk.
Ответ №2:
Вы просто хотите установить его на дорожку 2?
Как насчет:
play.track = Track.objects.get(id=2)
Ошибка сообщает вам, что вы пытаетесь присвоить ему номер, когда на самом деле вам нужен трек, поэтому решение состоит в том, чтобы присвоить ему трек. 🙂