你好,我有一个类似于主题标题的问题。
我有世界细节 - 在这里我有这个世界中国家的列表。我想仅从此世界中删除一个国家,而不是普遍地删除它,并在此之后自动返回到此世界。
查看我的世界:
错误提示说是关于第几行。
在模板中
如何修复这个错误?
编辑:
在/world/31/12/处发生了NoReverseMatch错误。
引用:
找不到符合参数'()'和关键字参数'{ 'pk': 31}'的'my_world'的反向匹配。尝试了0个模式:[]。
我有世界细节 - 在这里我有这个世界中国家的列表。我想仅从此世界中删除一个国家,而不是普遍地删除它,并在此之后自动返回到此世界。
查看我的世界:
def my_world(request, pk):
world = get_object_or_404(World, pk=pk)
return render(request, 'game/my_world.html', {'world': world})
def delete_country(request, world_pk, country_pk):
world = get_object_or_404(World, pk=pk)
country = get_object_or_404(Country, pk=pk)
world.country.remove(country)
return redirect("my_world", pk=world.pk)
错误提示说是关于第几行。
world = get_object_or_404(World, pk=pk)
在模板中
{% url 'game.views.delete_country' world_pk=world.pk country_pk=country.pk %}
url.py
url(r'^world/(?P<world_pk>\d+)/(?P<country_pk>\d+)/$', views.delete_country, name='delete_country'),
models.py
class Country(models.Model):
name = models.CharField(verbose_name="Name of country", max_length=100, default="Australia")
number = models.IntegerField(verbose_name="number of country", default="1")
def __unicode__(self):
return self.name
class World(models.Model):
country = models.ManyToManyField(Country)
name = models.CharField(verbose_name="New Map", max_length=100)
def __unicode__(self):
return self.name
如何修复这个错误?
编辑:
在/world/31/12/处发生了NoReverseMatch错误。
引用:
找不到符合参数'()'和关键字参数'{ 'pk': 31}'的'my_world'的反向匹配。尝试了0个模式:[]。
return redirect("my_world", pk=world.pk)
get_object_or_404(World, pk=world_pk)
吗?例如在第二个视图中,你没有传递名为pk
的参数。 - Tom Dalton