спасибо за ваше время: у меня есть модель, которая связана с пользователем, и единственная, которая может обновить его, это его создатель. пока что работает нормально. только пользователь-создатель может открыть обновление URL-адреса, хотя я не могу передать кнопку на главном шаблоне модели с перенаправлением на этот URL-адрес обновления.
Я хотел бы знать, есть ли путь к этой кнопке отображается только для его пользователя (если не в порядке, просто войти в него для соответствующего пользователя набора запросов).
Или просто, почему эта кнопка не работает: я должен получить URL, например: services / parceiro / update / 2 Я могу открыть этот URL, если я - пользователь-создатель, но когда я пытаюсь установить его в кнопке, я получаю эту ошибку:
Обратное для update_parceiro2 с аргументами '('',)' не найдено. Попробован 1 шаблон (ов): ['services / parceiro / update / (? P [0-9] +) $']
parceiros. html:
{% extends "base.html" %}
{% block content %}
<h1>{{parc.nome}} - {{parc.user}} - {{parc.responsavel}}</h1>
<form action="{% url 'update_parceiro2' Parceiros.id %}">
<button type="submit"><i class="material-icons">sync</i></button>
</form>
{% endblock %}
просмотров .py:
def parceirosview(request, pk=None):
parc = get_object_or_404(Parceiros, id=pk)
context = {'parc': parc}
return render(request, 'parceiro.html', context)
def get_queryset(self):
return super().get_queryset().filter(parceiro__user=self.request.user)
class ParceiroUpdate(UpdateView):
model = Parceiros
template_name = 'parceiroform.html'
fields = ['nome', 'endereco', 'responsavel', 'tel']
def get_queryset(self):
return super().get_queryset().filter(user=self.request.user)
urls.py:
urlpatterns = [
path('home/', views.home_view, name='home2'),
path('parceiro/', views.parceirosview, name='parceiro2'),
path('parceiro/detail/<int:pk>', views.parceirosview, name='parceiro_detail2'),
path('addparceiro/', views.parceiros_create, name='add_parceiro2'),
path('parceiro/detail2/<int:pk>', ParceirosView.as_view(), name='parceiro_detail22'),
path('parceiro/update/<int:pk>', ParceiroUpdate.as_view(), name='update_parceiro2')
]
models.py:
get_user_model = User
class Parceiros (models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
nome = models.CharField(max_length=200)
endereco = models.TextField(max_length=400, blank=True)
responsavel = models.CharField(max_length=100)
tel = PhoneField(max_length=12)
created_at = models.DateTimeField(auto_now=True)
updated_at = models.DateTimeField(auto_now_add=True, blank=True)
ativo = models.BooleanField(default=False)
def get_queryset(self):
queryset = super(Parceiros, self).get_queryset()
return queryset
def __str__(self):
return '%s %s' % (self.user, self.nome)
def get_absolute_url(self):
return reverse('parceiro_detail2', kwargs={'pk': self.pk})