Django HardCoding поля «многие ко многим» в форме - PullRequest
0 голосов
/ 11 мая 2011

Я пытаюсь жестко закодировать следующее для проверки. Как мне это сделать, не обнаружив ошибки?

Мой взгляд:

`def create (запрос): form = PlayForm (request.POST или None) if 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.

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Вы просто хотите установить его на дорожку 2?

Как насчет:

play.track = Track.objects.get(id=2)

Ошибка говорит вам, что вы пытаетесь дать ему номер, когда на самом деле вам нужен трек, поэтому решение состоит в том, чтобы дать ему трек. :)

2 голосов
/ 11 мая 2011

Попробуйте это:

play.track = Track.objects.get(pk=2)

Вам нужно назначить экземпляр модели Track, а не просто pk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...