在Django错误消息中,将带有pk或id的url重定向到更新页面
我已经创建了一个应用程序,在CreateView页面上,Submit按钮可以很好地创建一个新的S引用。如果输入值与现有引用匹配,我还创建了一条错误消息。我在错误消息部分创建了一个按钮,并尝试链接它来更新页面,以更新这些参考字段,如主联系人。我尝试了许多选项,但没有为参数pk或id获得正确的代码来获得个人记录更新页面 这是错误消息中的url 我尝试了很多pk、id选项,但都不起作用在Django错误消息中,将带有pk或id的url重定向到更新页面,django,Django,我已经创建了一个应用程序,在CreateView页面上,Submit按钮可以很好地创建一个新的S引用。如果输入值与现有引用匹配,我还创建了一条错误消息。我在错误消息部分创建了一个按钮,并尝试链接它来更新页面,以更新这些参考字段,如主联系人。我尝试了许多选项,但没有为参数pk或id获得正确的代码来获得个人记录更新页面 这是错误消息中的url 我尝试了很多pk、id选项,但都不起作用 'pk'=self.pk; {'pk'=self.pk}; object.id 下面是一些代码 mode
'pk'=self.pk;
{'pk'=self.pk};
object.id
下面是一些代码
models.py
class LNOrder(models.Model):
reference_number = models.CharField(max_length=15,blank=True, null=True, unique=True, error_messages={'unique':"This reference already exists."})
primary_contact = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True)
url.py
urlpatterns = [
path('lfcnotifier', LNCreateView.as_view(), name='lnorder_create'),
path('lfcnotifier/<int:pk>', LNDetailView.as_view(), name='lnorder_detail'),
path('lfcnotifier/<int:pk>/update/', LNUpdateView.as_view(), name='lnorder_update'),
]
我希望当用户点击更新请求按钮时,它会打开更新页面来编辑个人引用
但我从“pk”=self.pk”中得到消息“无法解析其余部分:'=self.pk”。
当我尝试以上不同的选项时,我收到的消息略有不同
我希望有正确的URL代码,以便在单击“更新请求”按钮时更新页面
谢谢
另外,为了节省空间,我在这里只放了一些模板代码。它们在表格部分。如果我使用以下代码
而不是
<a href="{% url 'lnorder_update' 'pk'=self.pk %}" class="shadow-sm col-sm-4 btn-block btn btn-primary mt-0">Update Request</a>
它可以打开完整的列表页面而不会出现问题。我可以去更新页面从完整的列表页面没有问题。但我想从这里直接打开更新页面,而不是多做一步 这是各种各样的困惑 首先,在纯Python或Django模板中,不能在表达式的左侧使用字符串 但是,第二,你没有所谓的
self
。你所拥有的将从视图中传递出去;但是,从您发布的代码中不清楚这是哪个实际视图。它似乎不是CreateView,因为您正在链接到更新。但是假设它实际上是LNDetailView
,并且假设它实际上是一个DetailView,那么您可以访问模板中的当前对象,就像对象
一样
所以你会这样做:
{% url 'lnorder_update' pk=object.pk %}
然而再说一次,实际上这样做是没有意义的。您不能通过
a
提交表单。您需要一个带有按钮的
元素。更新视图在哪里?上面显示的哪个视图正在呈现此模板?显示视图UpdateView正常。作为我添加的附加背景和URL,我可以毫无疑问地从完整列表页面转到视图。当数据库中已经存在输入引用时,直接从创建页面打开更新页面是一个问题。我添加了额外的背景。感谢您的回复,但是当我尝试pk=object.pk时,它显示了错误:异常值:找不到关键字参数“{pk':”}”的“lnorder\u update”的反向。尝试了1个模式:['lfcnotifier\\/(?P[0-9]+)\\/更新\\/$']
<a href="{% url 'lnorder_update' 'pk'=self.pk %}" class="shadow-sm col-sm-4 btn-block btn btn-primary mt-0">Update Request</a>
{% url 'lnorder_update' pk=object.pk %}