django ManyToMany 模型视图和模板

Posted

技术标签:

【中文标题】django ManyToMany 模型视图和模板【英文标题】:django ManyToMany models views and templates 【发布时间】:2018-04-05 08:14:27 【问题描述】:

我有作为用户扩展的玩家模型和竞赛模型。许多用户可以玩一场比赛,一场比赛可以有很多用户(ManyToMany)

class Gammer(User):

    competition=models.ManyToManyField(Competition)
    puntaje_global = models.IntegerField(default=0)
    ranking = models.IntegerField(default=0)

class Competition(models.Model):

    name = models.CharField(max_length=50)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)
    finish_date=models.DateTimeField(blank=True, null=True)
    duration = models.DurationField(blank=True,null=True)
    def finish(self):
        self.finish_date = timezone.now()
        self.save()
    def publish(self):
        self.published_date = timezone.now()
        self.save()
    def __str__(self):
        return self.name

在 admin.py 中添加:

admin.site.register(Gammer)

管理员可以查看玩家比赛(用户)或为他们分配能力

现在我希望玩家(用户)可以注册比赛(选择比赛)。 我该如何继续?

【问题讨论】:

你的意思是每件事情都在管理员那里工作,但你也想允许用户? 【参考方案1】:

问题并不完全清楚。由于它在管理员中注册,您可以转到管理页面并从玩家资料中选择可用选项中的可用比赛。 但是,如果您计划为用户提供选择比赛的选项,那么您需要构建一个可供他们选择的实用程序。

【讨论】:

以上是关于django ManyToMany 模型视图和模板的主要内容,如果未能解决你的问题,请参考以下文章

Django:检查模板中ManyToMany字段中的值

如何在模板上显示 Django ManyToMany?需要简单的代码

通过 Django 模板中的视图传递变量

Django 模型 ManytoMany getter

django 模型:如何克服“通过”ManyToMany 选项限制

保存自定义用户模型时 Django ManyToMany 覆盖