Обновление django с использованием имени вошедшего пользователя в качестве pk
Сделал меню методом table и post с информацией о зарегистрированном пользователе. Я хочу обновлять информацию, используя имя пользователя. Если в таблице нет выхода имени пользователя как залогиненного пользователя, он публикует данные, но если имя пользователя уже вышло, я хочу, чтобы он перезаписал данные. Пока что он не перезаписывает, а просто публикует. Что я могу сделать, чтобы исправить это?
model.py
class OrderItem(models.Model):
username = models.CharField('Username', max_length=20, null=True, blank=True)
first_name = models.CharField('First Name', max_length=30, null=True, blank=True)
last_name = models.CharField('Last Name', max_length=30, null=True, blank=True)
vendor_name = models.ForeignKey(Vendor, on_delete=models.SET_NULL, null=True)
menu_name = models.ForeignKey(Menu, on_delete=models.SET_NULL, null=True)
note = models.CharField('note', max_length=255, null=True, blank=True)
view.py
def UpdateOrderView(request, pk):
username = user.is_authenticated
order = OrderItem.objects.get(username=username)
form1 = OrderForm()
context = {'form1': form1 }
if request.method == 'POST':
form1 = OrderForm(request.POST, instance=order)
print(request.POST)
if form1.is_valid():
form1.save()
return redirect('order-update', pk=pk)
return render(request, '/order_info.html', context)
urls.py
urlpatterns = [
path("order_info", views.OrderView, name="order-page"),
path("<int:pk>", views.UpdateOrderView, name="order-update"),
]
Попробуйте обновить это в вашем models.py
class OrderItem(models.Model):
username = models.CharField('Username', max_length=20, null=True, blank=True, primary_key=True)
Если вышеуказанное решение не работает, попробуйте удалить миграцию и python manage.py makemigrations
снова