2011-05-11 4 views
0

J'essaie de coder en dur les éléments suivants à mon avis à des fins de test. Comment puis-je faire cela sans rencontrer d'erreur?Django HardCoding Plusieurs champs dans un formulaire

Mon point de vue:

`créer def (demande): form = Playform (request.POST ou None) si 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)` 

Mon modèle:

class Play(models.Model): 
    track = models.ForeignKey(Track,null=True, related_name='track_creator_set') 

Lorsque je tente ce que j'obtiens l'erreur suivante ...

Cannot assign "2": "Play.track" must be a "Track" instance. 

Répondre

2

Essayez ceci:

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

Vous devez attribuer une instance du modèle de piste, plutôt que le pk.

2

Vous voulez juste le mettre à la piste 2?

Que diriez-vous:

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

L'erreur vous dit que vous essayez de donner un chiffre, alors qu'en fait, vous avez besoin d'une piste, de sorte que la solution est de donner une piste. :)

Questions connexes