Как автоматически получить поле имени пользователя в Django

Я работаю над проектом Django, который по своей работе чем-то похож на Fiverr. Я использовал abstractuser, где есть покупатель и продавец. Продавец создает выступление, затем покупатель просматривает выступление, прежде чем разместить заказ. Моя проблема в том, как получить продавца и поместить его в заказ, который покупатель создаст после прочтения выступления. В настоящее время я использую систему, при которой покупатель должен вручную выбрать концерт из списка, что, на мой взгляд, неэффективно. Вот мой Models.py

`class User(AbstractUser):
            is_buyer=models.BooleanField(default=False)
            is_seller=models.BooleanField(default=False)
        class Profile(models.Model):
            user = models.OneToOneField(User, on_delete=models.CASCADE)
            avatar = models.ImageField(default='avatar.jpg', null=True, blank=True)
            about = models.CharField(max_length=100)
        
            def __str__(self):
                return self.user.username
        
        class Gig(models.Model):
            seller = models.ForeignKey(Profile, on_delete = models.CASCADE, null=False, blank=False)
            category = models.ForeignKey('Category', on_delete = models.CASCADE, null=False, blank=False)
            title = models.CharField(max_length=500, null=True, blank=True)
            description = models.CharField(max_length=500, null=True, blank=True)
            gig_id = models.UUIDField(default=uuid.uuid4, primary_key=True, unique=True, editable=False)
            created = models.DateTimeField(auto_now_add=True)
        
            def __str__(self):
                return self.title 
        
        class Order(models.Model):
            buyer = models.ForeignKey(Profile, on_delete=models.CASCADE, null=False, blank=False)
            seller = models.ForeignKey(Gig, on_delete=models.CASCADE, related_name='+', null=False, blank=False)
            title = models.CharField(max_length=500, null=True, blank=True)
            description = models.CharField(max_length=500)
            amount = models.IntegerField(max_length=50, blank=False)
            is_ordered = models.BooleanField(default=False)
            order_id = models.UUIDField(default=uuid.uuid4, unique=True, db_index=True, editable=False)
            slug = models.SlugField(null=True)
        
            def __str__(self):
                return self.title` 

И views.py, где я получаю представления;

def createOrder(request):
    profile = request.user.profile 
    form = CreateOrderForm()
    if request.method == 'POST':
        form = CreateOrderForm(request.POST, request.FILES)
        if form.is_valid:
            order = form.save(commit=False)
            order.buyer = profile 
            order.save() 
            # form.save()
            messages.info(request, 'Order Succesfully Created')
            return redirect('create_order')
        else:
            messages.error(request, 'Order Not Created! Try Again Later')
             
    context = {'form':form}
    return render(request, 'users/create_order.html', context)

Любая помощь будет высоко оценена.

Вернуться на верх