0

Hi i have a seller model that is related one to one field with user in DJANGO. Seller can create a "deal" and to become seller you first have to create a normal account as a user. I dont have any idea how to take to the view deals that are from the specyfic seller

MY views.

@user_passes_test(is_seller)
def seller_page(request):
    if request.method == "GET":
        user = request.user
        _seller = Seller.objects.get(user_id=user)  # TODO: doesnt work
        deals = Deal.objects.get(seller_id=_seller)
        form = forms.DealModelForm
        context = {'deals': deals, 'form': form}
        return render(request, 'seller_page.html', context)

My models

class Seller(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)
    address = models.CharField(max_length=255)
    city = models.CharField(max_length=255)
    post_code = models.CharField(max_length=6)
    phone = models.CharField(max_length=12)
    email = models.CharField(max_length=255)
    bank_account = models.CharField(max_length=255)
    nip = models.CharField(max_length=255)
    is_seller_active = models.BooleanField(default=False)
    sells = models.IntegerField(default=0)


class Deal(models.Model):
    seller = models.ForeignKey(Seller, on_delete=models.CASCADE)
    title = models.CharField(max_length=255)
    description = models.TextField()
    image = models.ImageField()
    is_deal_on = models.BooleanField(default=True)
    sell_price = models.DecimalField(default=0, decimal_places=2, max_digits=6, help_text='Cena sprzedaży')
    origin_price = models.DecimalField(default=0, decimal_places=2, max_digits=6, help_text='Oryginalna cena',
                                       blank=True, null=True)
    time_valid = models.IntegerField(default=12)  # ilość miesięcy ile warty jest deal
    unique_code = models.CharField(max_length=60, null=True, blank=True)
    quantity = models.IntegerField(default=0)
    province = models.IntegerField(choices=PROVINCES)

ERROR :

_seller = Seller.objects.get(user_id=user)

0

1 Answer 1

1

If the "user" variable is an integer:

_seller = Seller.objects.get(user__id=user) #Note that is "__" and not "_"

if the "user" variable is an object (User model):

_seller = Seller.objects.get(user=user)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.