On Tue, Nov 13, 2012 at 8:52 AM, Josue Balandrano <xird...@gmail.com> wrote: > 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.
I actually think you will have more luck with Jill's suggestion :) cheers L. > > 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> >> 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. >> > To unsubscribe from this group, send email to >> > django-users...@googlegroups.com. >> > 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. -- ...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 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.