Как автоматически сохранить внешний ключ в Django?
Я хочу сохранить restaurantID (внешний ключ, который ссылается на Restaurant_Account) в таблице Menu. Они должны иметь одинаковое значение. Например, если пользователь 'A' в Restaurant_Account вошел в систему и заполнил форму для сохранения данных в таблице Menu, идентификатор ресторана пользователя A должен быть сохранен в таблице Menu автоматически.
Как я могу это сделать? Заранее спасибо. Ниже приведен мой код!
class Restaurant_Account(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
is_restaurant = models.BooleanField(default=True)
restaurantID = models.AutoField(primary_key=True)
name = models.CharField(max_length=200)
isActive = models.BooleanField(default=True)
image = models.ImageField(upload_to='images/', blank=True)
website = models.URLField(blank=True)
country = models.CharField(max_length=50)
def __str__(self):
return self.user.username
class Menu(models.Model):
restaurantID = models.ForeignKey(Restaurant_Account, on_delete=models.CASCADE, default=None, null=True)
item = models.CharField(max_length=100)
itemImage = models.ImageField(upload_to='images/', blank=True)
price = models.DecimalField(max_digits=6, decimal_places=2)
category = models.CharField(
max_length=20,
choices=CHOICES)
def __str__(self):
return self.item
Ниже представлен мой views.py.
def Add_Menu(request, restaurantID):
display=Menu.objects.get(id=restaurantID)
form = MenuForm
if request.method=="POST":
form = MenuForm(request.POST, request.FILES)
if form.is_valid():
restaurant = form.save(commit=False)
restaurant.restaurantID = Restaurant_Account.objects.get(restaurantID=restaurantID)
restaurant.save()
#form.save_m2m()
messages.success(request, "Saved successfully!")
return redirect('index')
else:
form=MenuForm()
return render(request, 'restaurant/add_menu.html', {'form':form, 'display':display})