Iam really not shure. Will try to chane this. El lunes, 12 de noviembre de 2012 13:56:08 UTC-6, Jill Green escribió: > > Doesn't the default need to be one of the choices? > > models.PositiveIntegerField(default=1, null=False, > choices=((1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'))) > > > Sent from my iPhone > > On Nov 12, 2012, at 11:37 AM, Josue Balandrano > <xir...@gmail.com<javascript:>> > wrote: > > Hi, I am trying to create a very basic ratings and comments app. I have > this model: > > class Ratings(models.Model): > user = models.ForeignKey(UserProfile) > product = models.ForeignKey(Product) > rate = models.PositiveIntegerField(default=0, null=False, > choices=((1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'))) > comment = models.TextField(default='', blank=True) > date_added = models.DateField(default=datetime.now) > objects = RatingsManager() > > def __unicode__(self): > return self.rating > > class Meta: > unique_together = ("user", "restaurant") > > class RatingsManager(models.Manager): > def get_average(self, **kwargs): > prod = kwargs['prod'] > return self.filter(product = prod).aggregate(Avg('rate')) > > And I have this modelform Class: > > class RatingsForm(forms.ModelForm): > comment = > forms.CharField(widget=forms.Textarea(attrs={'name':'comentario', > 'label':'', 'rows':'5', 'cols':'50'})) > class Meta: > model = Ratings > widgets = { > 'user' : forms.HiddenInput(), > 'product' : forms.HiddenInput(), > 'rate' : forms.RadioSelect(), > } > exclude = ('date_added', ) > > First, this is how I initiate the form and pass it to the context > variable. This form will only ve bisivle in a detail view of the product. > > rating_form = RatingsForm(initial={'product':prod.id, 'user': > self.request.user.id}) > context['rating_form'] = rating_form > > And this is what I gets executed once the view recieves a post request. > > product_id = request.POST.get('product') > user_id = request.user.id > try: > instance = Ratings.objects.get(user = int(user_id), product = > int(product_id)) #IF USER SUBMITED RATING FOR THIS PRODUCT UPDATE EXISTING > RECORD INSTEAD OF CREATING A NEW ONE > except Ratings.DoesNotExist: > instance = None > if instance is None: > formset = RatingsForm(request.POST) > formset.restaurant = int(restaurant_id) > formset.user = int(user_id) > if formset.is_valid(): > formset.save() > > else: > formset = RatingsForm(request.POST, instance=instance) > if formset.is_valid(): > formset.save() > > context.update({ 'rating_form':formset,}) > return self.render_to_response(context) > > So when ever I submit the form I get this error: > > > - Select a valid choice. That choice is not one of the available > choices. > > But I can't figure out what does it means? Because the only choice field I > have is the "rate" field and it could never be anything else than an int > between 1 - 5. > > Any ideas how to fix this? > > Thank you. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-users/-/u6heU1dlyDsJ. > To post to this group, send email to django...@googlegroups.com<javascript:> > . > To unsubscribe from this group, send email to > django-users...@googlegroups.com <javascript:>. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/nrjwEGQ46ioJ. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.