2017-06-18 3 views
0

Ich baue eine einfache Anwendung, um Django zu lernen.Get ManyToMany Objekte

Grundsätzlich kann ein Portfolio mehrere Unternehmen enthalten. Ich möchte die Firmen eines bestimmten Portfolios des angemeldeten Benutzers anzeigen.

Models.py

class UserPortfolio(models.Model): 
    name = models.CharField(max_length=128, default='X') 
    user = models.ForeignKey(User) 
    #Company = models.ManyToManyField(Company) 

    def __str__(self): 
     return self.name 

class Company(models.Model): 
    name = models.CharField(max_length=128, default='X') 
    slug = models.SlugField(max_length=6, default='X', unique=True) 

    def get_absolute_url(self): 
     return reverse('news:detail',kwargs={'pk': self.pk}) 

    def __str__(self): 
     return self.slug 

class PortfolioCompany(models.Model): 
    UserPortfolio = models.ForeignKey(UserPortfolio) 
    Company = models.ManyToManyField(Company) 

views.py

portfolio = UserPortfolio.objects.filter(user=self.request.user) 
     myPortfolioRel = PortfolioCompany.objects.filter(UserPortfolio=portfolio) 

Aber jetzt nur zeigt es die ID des portfolioCompany.

Wie kann ich die Firmen im UserPortfolio anzeigen?

Antwort

0

Ah fand es. Ich muss andersherum arbeiten.

+0

Ich brauche wahrscheinlich PortfolioCompany nicht, da das automatisch erstellt wurde, und fügen Sie es einfach (manytomany) an UserPortfolio direkt an. – Sharpless512

0

Greifen Sie auf das Feld "Viele zu viele" zu und wenden Sie den Filter "Abfrage festlegen" auf "Alle" an oder filtern oder zählen Sie, um viele bis viele Felder zu verwenden.

Das Anwenden einer Abfrage-Set-Funktion ist erforderlich, da es ein Feld "Viele zu viele" ist und für die Serialisierung der Daten erforderlich ist.

Verwandte Themen