I'm making a game link site, where users can post links to their favorite web game. When people post games they are supposed to check what category the game falls into. I decided to allow many categories for each game since some games can fall into many categories. So the question is, how do I handle this in my view? And how can I show it as Checkboxes, where at least one has to be checked? And how can I show this as checkboxes in the Admin as well?
class Category(models.Model): category = models.CharField(max_length=200) def __unicode__(self): return self.category class Game(models.Model): name = models.CharField(max_length=200) url = models.CharField(max_length=200) poster = models.ForeignKey(User, related_name='game_poster_set') postdate = models.DateTimeField(default=datetime.now) cats = models.ManyToManyField(Category) hits = models.IntegerField(default=0) post = models.BooleanField(default=False)
def submit(request): form = GameForm(request.POST or None) if form.is_valid(): game = form.save(commit=False) game.poster = request.user game.save() next = reverse('gamesite.games.views.favorites') return HttpResponseRedirect(next) return render_to_response( 'games/submit.html', {'form': form}, context_instance = RequestContext(request),)
class GameForm(forms.ModelForm): name = forms.CharField(max_length=15, label='Name') url = forms.URLField(label='URL', initial='http://') class Meta: model = Game fields = ('name','url')
Thanks!
class GameForm(forms.ModelForm): name = forms.CharField(max_length=15, label='Name') url = forms.URLField(label='URL', initial='http://') cats = forms.ModelMultipleChoiceField( queryset=Category.objects.all(), widget=forms.CheckboxSelectMultiple, required=True) class Meta: model = Game fields = ('name','url','cats')
that should fix your view, but i'm not sure about the admin. still looking... will edit if i find anything.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With