Judging by the docs it really doesn't matter the kind of field it is. As 
long as it has de choices tuple list. Giving that this tuple gives you the 
value it should take and the human readable form. So I am guessing django 
framework just mapps the labels with the values you give in the choices 
tuples. So as long as you use Positive Integers in the choice tuple it 
should be fine. 
HAving said this I am going to try to change it into a charfield to see 
what happens.

El lunes, 12 de noviembre de 2012 13:41:01 UTC-6, Lachlan Musicman escribió:
>
> On Tue, Nov 13, 2012 at 6: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'))) 
>
> Can a choices kwarg be used with a PositiveIntegerField? Is the 
> problem solved by changing this to a CharField? 
>
>
>
> >     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. 
>
>
>
> -- 
> ...we look at the present day through a rear-view mirror. This is 
> something Marshall McLuhan said back in the Sixties, when the world 
> was in the grip of authentic-seeming future narratives. He said, “We 
> look at the present through a rear-view mirror. We march backwards 
> into the future.” 
>
> http://www.warrenellis.com/?p=14314 
>

-- 
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/-/pjjgxDzWwgIJ.
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.

Reply via email to