Put user id in your Entity table it will be user has one Entity one to one .In the view u just retrieve the Entity id related to that user.
On Wed, Feb 5, 2020, 2:30 PM bobo michel <mbemail...@gmail.com> wrote: > Hi all, > > I am struggling with a piece of code for a few days now and thought I'll > seek for advice. > > Here is the storyline: > > I have a user, who enter invoices on the database based on the Invoices > model. Each invoice is linked to an Entity. The user does not have any link > to either the Invoice or the Entity. > > When the Entity user owner access their side of the website, I would like > to display Invoices which belong to the Entity. > > Now my problem is that I can pass a entity when the invoice inputting form > is submitted to the database but I cannot filter on the entity specifically. > > I want to be able to have a following: > > If Entity Y is selected, invoice 123 to be stored as linked to Entity Y > If Entity X is selected, invoice 456 to be stored as linked to Entity X. > > Below is the code which works to save the Invoice input into the Invoice > model but only with the first Entity in the Entity model. I would like to > make it dynamic and not to hard code the Entity ID in the program. > > Views.py: > > def claim_details(request): #save the > invoice onto DB > form = forms.SaveInvoice(request.POST) > user = request.user.id > if request.method == 'POST': > if form.is_valid(): > instance = form.save(commit=False) > inv = Entity.objects.all() > print(inv) > instance.entity_name = inv > print(inv) > instance.save() > forms.SaveInvoice() > > return redirect('accounts:claim') > else: > form = forms.SaveInvoice() > args = {'form': form} > return render(request, 'dashboard/claim_details.html', args) > > > Models.py > > class Entity(models.Model): > contact = models.ForeignKey(User, default=None, on_delete=models.CASCADE) > company_name = models.CharField(max_length=40, blank=False, null=True) > vat_registration = models.CharField(max_length=12, blank=False, null=True) > street_number = models.CharField(max_length=10, blank=False, null=True) > street_name = models.CharField(max_length=100, blank=False, null=True) > post_code = models.CharField(max_length=10, blank=False, null=True) > city = models.CharField(max_length=40, blank=False, null=True) > country = models.CharField(max_length=60, blank=False, null=True) > email = models.EmailField(max_length=240, blank=False, null=True) > > class Meta: > verbose_name_plural = "Entities" > > def __str__(self): > return self.company_name > > > class Invoices(models.Model): > invoice_number = models.CharField(max_length=12, blank=False, null=True) > invoice_date = models.DateField() > invoice_code = models.CharField(max_length=10, blank=False, null=True) > client_ref = models.CharField(max_length=10, null=True) > supplier = models.ForeignKey(Suppliers, default=None, > on_delete=models.CASCADE) > net_amount = models.FloatField() > vat_paid = models.FloatField() > vat_reclaimed = models.FloatField() > invoice_type = models.CharField(max_length=10, blank=False, null=True) # > should really be something with choices but for now it will do. > entity_name = models.ForeignKey(Entity, blank=True, null=True, > default=None, on_delete=models.CASCADE) > > class Meta: > verbose_name_plural = "Invoices" > > def __str__(self): > return self.invoice_type > > > > I would like the entity_name ID field to be parsed depending on which > entity is logged in the system. > > here is the another view I use to display the details of a current Entity > in my dashboard - Entity is linked to the user who created the entity. > > @login_required() > def client_details(request): > user = request.user > company = Entity.objects.filter(contact_id=user.id) > print(company) > print(user.id) > context = {'companies': company} > return render(request, 'dashboard/client_details.html', context) > > > Anyway, your help here will be much appreciated and if someone who is > knowledgeable enough will be ok to do a skype call with me to explain to me > I'd be very grateful. > > Thanks > > Jay > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/ce7f4a92-e8e4-4837-9309-2ebdf243484a%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/ce7f4a92-e8e4-4837-9309-2ebdf243484a%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAMeub5NVqmqY%2Bi%3DroNTrcqZONbWKQcbiaHjr3kk11mKkp_EZ4w%40mail.gmail.com.