How can I get a current user?
-
Data should be kept from the form in the OBD system, and in the submission there is a field
owner = models.ForeignKey(User,on_delete=CASCADE, related_name="bid")
I mean, I need to point out the current user, and I'm trying to make a point. defaultbut how do I get the ID of the current user? The user is thus created with the help of AbstractUser:class User(AbstractUser)
Models.py
class Auctions(models.Model): owner = models.ForeignKey(User,on_delete=CASCADE, related_name="bid", default=f"{**ID текущего пользователя**}") product_name = models.CharField(max_length=64) product_description = models.CharField(max_length=500) product_bid = models.IntegerField() image_url = models.CharField(max_length=100, default="Str") def __str__(self): return f"Product name: {self.product_name}, {self.product_description}, current bid:{self.product_bid}"
Views.py
def create_auction(request): error = "" if request.method== "POST": form = AuctionsForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("index")) else: error = "Valid data" form = AuctionsForm data = { "form":form } return render(request, "auctions/new_auction.html", data)
Maybe there's a better method than this to keep data, I'll be grateful for help.
-
def create_auction(request): if request.method== "POST" and request.user.is_authenticated: form = AuctionsForm(request.POST) if form.is_valid(): candidate = form.save(commit=False) # это нужно чтобы объект в модели создался, но зависимости пока не проверялись candidate.owner = request.user candidate.save() return HttpResponseRedirect(reverse("index"))
You don't have to picture the user in the hat, but you need to add a hidden field.
{{ form.owner.as_hidden }}