在通用视图中得到一个意外的关键字参数 'pk'
got an unexpected keyword argument 'pk' on genric view
我正在尝试使用内置 UpdateView
& DeleteView
,但我不断收到类型错误,异常值为:
get() got an unexpected keyword argument 'pk'
views.py
class SeqRunUpdate(LoginRequiredMixin, UpdateView):
form_class = Sequencing_RunsForm
model = Sequencing_Runs
class SeqRunDelete(LoginRequiredMixin, DeleteView):
model = Sequencing_RunsForm
success_url = reverse_lazy('seq_run-private')
urls.py
url(r'^private/Samples/(?P<pk>[0-9]+)/$', views.SampleUpdate.as_view(), name='sample-update'),
url(r'^private/Samples/(?P<pk>[0-9]+)/del$', views.SampleUpdate.as_view(), name='sample-delete'),
models.py
class Sequencing_Runs(models.Model):
seq = models.CharField (max_length=250, unique=True, verbose_name='Sequence')
date= models.DateField (auto_now=False, verbose_name='Date')
classifaction = models.IntegerField(choices=CLASSIFACTION_CHOICES, default=1)
def get_absolute_url(self):
return reverse('table:seq_run-add')
def __str__(self):
return self.seq
模板
<td><form action="{% url 'table:seq_run-update' seq.pk %}" method="get" style="display: inline;">
{% csrf_token %}
<button type="submit" class="btn btn-default">
<span class="glyphicon glyphicon-edit"></span>
</button>
</form></td>
<td><form action="{% url 'table:seq_run-delete' seq.pk %}" method="get" style="display: inline;">
{% csrf_token %}
<button type="submit" class="btn btn-default">
<span class="glyphicon glyphicon-trash"></span>
</button>
</form></td>
您在 urls.py
中使用了 SampleUpdate
,但我在您的 views.py
中的任何地方都看不到 class,而是 SeqRunUpdate
& SeqRunDelete
。在您的网址中使用相应的视图 class,错误应该会消失。
我正在尝试使用内置 UpdateView
& DeleteView
,但我不断收到类型错误,异常值为:
get() got an unexpected keyword argument 'pk'
views.py
class SeqRunUpdate(LoginRequiredMixin, UpdateView):
form_class = Sequencing_RunsForm
model = Sequencing_Runs
class SeqRunDelete(LoginRequiredMixin, DeleteView):
model = Sequencing_RunsForm
success_url = reverse_lazy('seq_run-private')
urls.py
url(r'^private/Samples/(?P<pk>[0-9]+)/$', views.SampleUpdate.as_view(), name='sample-update'),
url(r'^private/Samples/(?P<pk>[0-9]+)/del$', views.SampleUpdate.as_view(), name='sample-delete'),
models.py
class Sequencing_Runs(models.Model):
seq = models.CharField (max_length=250, unique=True, verbose_name='Sequence')
date= models.DateField (auto_now=False, verbose_name='Date')
classifaction = models.IntegerField(choices=CLASSIFACTION_CHOICES, default=1)
def get_absolute_url(self):
return reverse('table:seq_run-add')
def __str__(self):
return self.seq
模板
<td><form action="{% url 'table:seq_run-update' seq.pk %}" method="get" style="display: inline;">
{% csrf_token %}
<button type="submit" class="btn btn-default">
<span class="glyphicon glyphicon-edit"></span>
</button>
</form></td>
<td><form action="{% url 'table:seq_run-delete' seq.pk %}" method="get" style="display: inline;">
{% csrf_token %}
<button type="submit" class="btn btn-default">
<span class="glyphicon glyphicon-trash"></span>
</button>
</form></td>
您在 urls.py
中使用了 SampleUpdate
,但我在您的 views.py
中的任何地方都看不到 class,而是 SeqRunUpdate
& SeqRunDelete
。在您的网址中使用相应的视图 class,错误应该会消失。