Python 需要帮助在视图中创建模型吗
models.pyPython 需要帮助在视图中创建模型吗,python,django,Python,Django,models.py class Match(models.Model): match_name = models.CharField(max_length=100) player = models.CharField(max_length=100, choices=match_game, default=2) time_start = models.DateTimeField(blank=True, default=None, null=True) match
class Match(models.Model):
match_name = models.CharField(max_length=100)
player = models.CharField(max_length=100, choices=match_game, default=2)
time_start = models.DateTimeField(blank=True, default=None, null=True)
match_finished = models.BooleanField(default=False)
def get_absolute_url(self):
return reverse('match:details', kwargs={'pk': self.pk})
def __str__(self):
return self.match_name
class PlayerSignup(models.Model):
current_player = models.ForeignKey(User)
signup = models.ForeignKey(Match)
url.py
url(r'^create/add/$', views.MatchCreate.as_view(), name='match-add'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(template_name = 'match/bracket_detail.html'), name='details'),
url(r'^search/$', views.IndexView.as_view(template_name = 'match/bracket.html'), name='search'),
url(r'(?P<pk>[0-9]+)/$', views.PlayerSign, name='join')
模板
<a href="{% url 'match:join' match.pk%}">Join Match</a>
当一个人点击“加入比赛”链接时,我希望它创建一个PlayerSignup模型,并将其链接到他们正在进行的当前比赛
当我单击“连接匹配”链接时,什么都没有发生,没有新型号,没有错误。首先,请尝试编辑此语句
def PlayerSign(request):
...
match = Match.objects.get(pk=Match.pk)
到
因为URL中有一个名为pk的请求参数,所以应该将此参数传递给查询方法
其次,检查您的url定义
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(template_name = 'match/bracket_detail.html'), name='details'),
url(r'(?P<pk>[0-9]+)/$', views.PlayerSign, name='join')
url(r'^(?P[0-9]+)/$,views.DetailView.as_视图(template_name='match/bracket_detail.html'),name='details'),
url(r'(?P[0-9]+)/$',views.PlayerSign,name='join')
改为
url(r'^match_detail/(?P<pk>[0-9]+)/$', views.DetailView.as_view(template_name = 'match/bracket_detail.html'), name='details'),
url(r'^player_detail/(?P<pk>[0-9]+)/$', views.PlayerSign, name='join')
url(r'^match\u detail/(?P[0-9]+)/$),views.DetailView.as\u view(模板名称='match/bracket\u detail.html'),name='details'),
url(r“^player\u detail/(?P[0-9]+)/$”,views.PlayerSign,name='join')
首先,尝试编辑此语句
def PlayerSign(request):
...
match = Match.objects.get(pk=Match.pk)
到
因为URL中有一个名为pk的请求参数,所以应该将此参数传递给查询方法
其次,检查您的url定义
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(template_name = 'match/bracket_detail.html'), name='details'),
url(r'(?P<pk>[0-9]+)/$', views.PlayerSign, name='join')
url(r'^(?P[0-9]+)/$,views.DetailView.as_视图(template_name='match/bracket_detail.html'),name='details'),
url(r'(?P[0-9]+)/$',views.PlayerSign,name='join')
改为
url(r'^match_detail/(?P<pk>[0-9]+)/$', views.DetailView.as_view(template_name = 'match/bracket_detail.html'), name='details'),
url(r'^player_detail/(?P<pk>[0-9]+)/$', views.PlayerSign, name='join')
url(r'^match\u detail/(?P[0-9]+)/$),views.DetailView.as\u view(模板名称='match/bracket\u detail.html'),name='details'),
url(r“^player\u detail/(?P[0-9]+)/$”,views.PlayerSign,name='join')
你的其他URL是什么?@DanielRoseman我编辑过,所有的URL都应该在那里。你的加入匹配链接是什么?你希望Django如何区分你的详细信息和加入URL?@DanielRoseman啊,我明白你的意思了。添加/添加/到结尾给了我一个“NoReverseMatch”错误。你的其他URL是什么?@DanielRoseman我编辑过,所有的URL都应该在那里。那么,你的加入匹配链接是什么?你希望Django如何区分你的详细信息和加入URL?@DanielRoseman啊,我明白你的意思了。在末尾添加/add/给了我一个“NoReverseMatch”错误,这确实是一个问题,但不是OP遇到的问题:Django甚至因为URL冲突而无法访问相关视图。感谢您的帮助!只是想知道一件事,如果我不想去一个新的网址,但留在同一个网址呢@事实上,我不明白你的意思。但是我想你需要使用“HttpResponseRedirect”()这确实是个问题,但不是OP遇到的问题:Django甚至因为URL冲突而无法访问相关视图。谢谢你的帮助!只是想知道一件事,如果我不想去一个新的网址,但留在同一个网址呢@事实上,我不明白你的意思。但我想你需要使用“HttpResponseRedirect”()