私には状況があり、どちらがより実現可能/可能であるかに応じて、2 つの解決策のいずれかに満足しています。イベントを表示するページがあります。そのイベントの名前は必ずしも正しいとは限らないため、ユーザーは修正を提案することができます。これらの修正は、イベントへの外部キー関係を持つ独自のテーブルに格納されます。提案が行われると、ユーザーはその提案に対して賛成または反対の投票を行うことができます。ログインしている各ユーザーの最大投票数を 1 に制限する必要があります。これを行う方法がまったくわかりません。
私の理想的な解決策: 5 つもの候補が表示されます。ログインしている各ユーザーは、これら 5 つの提案のそれぞれに投票できます。それぞれに1回。
あまり理想的ではありませんが、それでも許容できる解決策: 5 つもの候補が表示されます。ログインしたユーザーは、5 つの提案のうち 1 つだけに賛成または反対の投票をすることができます。
どちらがより実用的かはわかりません。イベントのモデルと提案された名前を提供します。他に見る必要があるものがある場合はお知らせください。前もって感謝します!
class Event(models.Model):
def __unicode__(self):
return unicode(self.id)
id = models.BigIntegerField(blank = 'TRUE', primary_key='TRUE')
version = models.IntegerField(default = 0)
views = models.IntegerField(default = 0)
created = models.DateTimeField(editable = False)
modified = models.DateTimeField()
trained = models.BooleanField(default = False)
type = models.SmallIntegerField(default = 0)
def save(self, *args, **kwargs):
if not self.id:
self.created = datetime.datetime.today()
self.modified = datetime.datetime.today()
super(Event, self).save(*args, **kwargs)
class suggestedName(models.Model):
def __unicode__(self):
return unicode(self.name)
name = models.CharField(max_length=200, blank = 'TRUE', null = 'TRUE')
votes = models.IntegerField(default = 0)
event = models.ForeignKey(Event)