Я создал приложение, и на странице CreateView отлично работает кнопка «Отправить», чтобы создать новую ссылку S. Я также создал сообщение об ошибке, если входное значение соответствует существующей ссылке. Я создал кнопку в части сообщения об ошибке и попытался связать ее, чтобы обновить страницу, чтобы обновить эти справочные поля, например, основной контакт. Я перепробовал много вариантов, но не получил правильный код для аргумента с pk или id, чтобы получить страницу обновления отдельной записи.
это URL в сообщении об ошибке.
Я пробовал довольно мало вариантов pk, id, ни один из них не работает.
'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)
urls.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'),
]
template
<div class="input-group mb-3">
<div class="input-group-prepend w-225px">
<label class="input-group-text w-100">S Reference</label>
</div>
<input name="reference_number" type="text" class="form-control" placeholder="Enter your S Reference"/>
<button class="btn btn-primary cardshadow " data-toggle="tooltip" title="Click to submit" style="width:200px;" type="submit">submit</button>
{%for field in form %}
{% for error in field.errors %}
{{ error }} <a href="{% url 'lnorder_update' 'pk'=self.pk %}" class="shadow-sm col-sm-4 btn-block btn btn-primary mt-0">Update Request</a>
{% endfor %}
{% endfor %}
Views.py
class LNCreateView(SuccessMessageMixin,LoginRequiredMixin,CreateView):
model = LNOrder
template_name = 'lfcnotifier/lnorder_create.html'
form_class = LNOrderForm
def form_valid(self, form):
form.instance.created_by = self.request.user
return super().form_valid(form)
Я ожидаю, что когда пользователь нажмет на кнопку «Запрос на обновление», он откроетобновите страницу, чтобы отредактировать отдельную ссылку.
, но я получил сообщение "Не удалось разобрать остаток: '= self.pk' из '' pk '= self.pk'". Я получаю немного другие сообщения, когда я пробую вышеупомянутые различные варианты.
Я хотел бы иметь правильный код для URL-адреса, чтобы обновлять страницу при нажатии кнопки «Запрос на обновление».
Спасибо,
Дополнительный фон, я поставил только некоторыекода шаблона здесь, чтобы сэкономить место. Они находятся в разделе формы. Если я использую следующий код
<a href="{% url 'lnorder_list' %}" class="shadow-sm col-sm-4 btn-block btn btn-primary mt-0">Update Request</a>
вместо
<a href="{% url 'lnorder_update' 'pk'=self.pk %}" class="shadow-sm col-sm-4 btn-block btn btn-primary mt-0">Update Request</a>
, он может открыть страницу полного списка без проблем. Я могу перейти на страницу обновления со страницы полного списка без проблем. Но я хочу открыть страницу обновления отсюда напрямую, кроме как сделать еще один шаг.