第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django訪問外鍵字段并獲取其值

Django訪問外鍵字段并獲取其值

慕森王 2022-09-27 16:34:21
我正在嘗試建立一個小型網(wǎng)上商店平臺,用戶可以在其中創(chuàng)建商店,選擇產(chǎn)品類別并向其添加產(chǎn)品。為了實現(xiàn)我的目標,我創(chuàng)建了這個簡化的 models.pyclass Organization(models.Model):    org_id = models.AutoField(primary_key=True)    company_name = models.CharField(max_length=255)    owned_by = models.OneToOneField(UserProfile, on_delete=models.CASCADE)    def __str__(self):        return f'{self.company_name} ORG'    def get_absolute_url(self):        return reverse('org-view', kwargs={'pk': self.org_id})class Category(models.Model):    CATEGORIES = ( ('electric', 'Electronics'), ('food', 'FrozenFood'), ('shoes', 'slippers') )    cat_name = models.CharField(max_length=255, choices=CATEGORIES)    def __str__(self):        return f'{self.cat_name} Category'    def get_absolute_url(self):        return reverse('cat-view', kwargs={'id': self.pk})class Product(models.Model):    org_id = models.ForeignKey(Organization, on_delete=models.CASCADE, blank=True, null=True)    cat_name = models.ForeignKey(Category, on_delete=models.CASCADE)    product_name = models.CharField(max_length=255)    def __str__(self):        return self.product_name在我看來,我想讓用戶保持在一個頁面上,在那里他可以管理他的商店。我目前 views.py:class OrganizationDetailView(LoginRequiredMixin, UserPassesTestMixin, DetailView, FormMixin):    model = Organization    queryset = Organization.objects.all()    template_name = 'org/org_view.html'    form_class = ProductForm    def test_func(self):        org = self.get_object()        if self.request.user.profile == org.owned_by:            return True        return False    def get(self, request, *args, **kwargs):        self.object = self.get_object()        context = self.get_context_data()        pk = self.object.serializable_value('pk')        product = Product.objects.filter(org_id=pk)        return self.render_to_response(context)我需要幫助來理解一些事情:如何執(zhí)行查詢以檢索他的所有產(chǎn)品,并能夠看到產(chǎn)品所屬的類別。我的錯誤解決方案:產(chǎn)品變量包含該商店的所有產(chǎn)品,包括指向類別pk的cat_name_id。這很好,但我需要類別的名稱。我需要這樣的東西:打?。╬roduct.category_name),我應該看到“電子產(chǎn)品”如何執(zhí)行將同一類別下的項目組合在一起的查詢。我已經(jīng)花了幾天時間試圖理解這些查詢,所以請解釋像我五歲一樣
查看完整描述

1 回答

?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

您可以使用以下命令篩選一個用戶的所有產(chǎn)品:

products = Product.objects.all().filter(org_id__owned_by=user)

請參閱文檔:https://docs.djangoproject.com/en/3.0/topics/db/queries/#retrieving-specific-objects-with-filters。此處,“user”是User_Profile類中的用戶對象。

關(guān)于您的第二個問題,我猜您想按類別對特定查詢進行排序;在這種情況下,語句將是:

products = Product.objects.order_by('cat_name')

或者,您可以將兩者與以下各項結(jié)合使用:

products = Product.objects.all().filter(org_id__owned_by=user).order_by('cat_name')


查看完整回答
反對 回復 2022-09-27
  • 1 回答
  • 0 關(guān)注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號