Python Django |更改pk view参数会破坏视图
我正在制作一个Django应用程序,每个用户都有一张卡片,由几个文本块组成 以下是我的模型:Python Django |更改pk view参数会破坏视图,python,django,Python,Django,我正在制作一个Django应用程序,每个用户都有一张卡片,由几个文本块组成 以下是我的模型: class Card(models.Model): owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name="owner") class Tile(models.Model): card = models.ForeignKey( Card, on_delete=m
class Card(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name="owner")
class Tile(models.Model):
card = models.ForeignKey(
Card, on_delete=models.CASCADE, related_name="card")
content = models.TextField()
我想根据URL使用卡片/磁贴数据填充相同的HTML模板,因此我通过URL传递卡片的主键:
urlpatterns = [
path('card<int:pk>/', views.card, name='card'),
]
但是,这并不起作用:
def card(request, card_pk):
try:
card = Card.objects.get(pk=card_pk)
if card:
context = {
'title': 'Card',
'tiles': Tile.objects.filter(card=card_pk)
}
return render(request, 'cards/card.html', context)
except:
return HttpResponseNotFound()
我得到以下错误:card()得到一个意外的关键字参数“pk”
为什么呢?我的印象是,我刚刚重命名了视图函数的参数…该值是从URL生成的
urlpatterns = [
path('card<int:card_pk>/', views.card, name='card'),
]
def card(request, card_pk):
try:
card = Card.objects.get(pk=card_pk)
if card:
context = {
'title': 'Card',
'tiles': Tile.objects.filter(card=card_pk)
}
return render(request, 'cards/card.html', context)
except:
return HttpResponseNotFound()
urlpatterns=[
路径('card/',views.card,name='card'),
]
def卡(请求、卡_pk):
尝试:
card=card.objects.get(pk=card\u pk)
如果卡:
上下文={
‘头衔’:‘卡片’,
“tiles”:Tile.objects.filter(card=card\u pk)
}
返回呈现(请求'cards/card.html',上下文)
除:
返回HttpResponseNotFound()
我建议您再看一遍。pk作为关键字参数传递(注意urlpatterns)哦,太完美了!非常感谢你!!
urlpatterns = [
path('card<int:card_pk>/', views.card, name='card'),
]
def card(request, card_pk):
try:
card = Card.objects.get(pk=card_pk)
if card:
context = {
'title': 'Card',
'tiles': Tile.objects.filter(card=card_pk)
}
return render(request, 'cards/card.html', context)
except:
return HttpResponseNotFound()