คำถามติดแท็ก django-queryset

Django querysets เป็นนามธรรมหลักสำหรับการดึงวัตถุจากระบบ ORM ของ Django

5
sql“ LIKE” เทียบเท่าในแบบสอบถาม django
คำสั่ง SQL นี้เทียบเท่ากับอะไรใน django? SELECT * FROM table_name WHERE string LIKE pattern; ฉันจะนำสิ่งนี้ไปใช้ใน django ได้อย่างไร ฉันเหนื่อย result = table.objects.filter( pattern in string ) แต่นั่นไม่ได้ผล ฉันจะใช้สิ่งนี้ได้อย่างไร


2
สามารถส่งพจนานุกรมไปยังโมเดล django เมื่อสร้างได้หรือไม่
มันเป็นไปได้ที่จะทำบางสิ่งบางอย่างที่คล้ายกันนี้มีlist, dictionaryหรือสิ่งอื่นใด data_dict = { 'title' : 'awesome title', 'body' : 'great body of text', } Model.objects.create(data_dict) จะดียิ่งขึ้นถ้าฉันสามารถขยายได้: Model.objects.create(data_dict, extra='hello', extra2='world')

3
Django - การกรองคุณสมบัติคีย์ต่างประเทศ
ฉันกำลังพยายามกรองตารางใน Django ตามค่าของฟิลด์เฉพาะของไฟล์ForeignKey. ตัวอย่างเช่นฉันมีสองรุ่น: class Asset(models.Model): name = models.TextField(max_length=150) project = models.ForeignKey('Project') class Project(models.Model): name = models.TextField(max_length=150) ฉันต้องการกรองรายการสินทรัพย์ของฉันตามชื่อของโครงการที่เกี่ยวข้อง ขณะนี้ฉันกำลังดำเนินการสองคำค้นหา: project_list = Project.objects.filter(name__contains="Foo") asset_list = Asset.objects.filter(desc__contains=filter, project__in=project_list).order_by('desc') ฉันสงสัยว่ามีวิธีระบุการกรองประเภทนี้ในแบบสอบถามหลักหรือไม่?

3
เลือกค่าที่แตกต่างจากเขตข้อมูลตาราง
ฉันดิ้นรนที่จะเอาหัวไปรอบ ORM ของ Django สิ่งที่ฉันต้องการทำคือรับรายการค่าที่แตกต่างกันภายในฟิลด์บนตารางของฉัน .... เทียบเท่ากับค่าใดค่าหนึ่งต่อไปนี้: SELECT DISTINCT myfieldname FROM mytable (หรืออีกทางเลือกหนึ่ง) SELECT myfieldname FROM mytable GROUP BY myfieldname อย่างน้อยฉันก็อยากจะทำแบบ Django ก่อนที่จะหันมาใช้ Raw sql ตัวอย่างเช่นมีตาราง: id ถนนเมือง 1 ถนนสายหลักฮัลล์ 2, ถนนอื่น ๆ , ฮัลล์ 3, Bibble Way, เลสเตอร์ 4 อีกทางหนึ่งเลสเตอร์ 5, High Street, Londidium ฉันต้องการรับ: ฮัลล์เลสเตอร์ Londidium

6
ชุดกรอง Django __in สำหรับ * ทุก * รายการในรายการ
สมมติว่าฉันมีโมเดลต่อไปนี้ class Photo(models.Model): tags = models.ManyToManyField(Tag) class Tag(models.Model): name = models.CharField(max_length=50) ในมุมมองของฉันมีรายการที่มีฟิลเตอร์ที่ใช้งานเรียกว่าประเภท ฉันต้องการที่จะกรองวัตถุรูปภาพที่มีแท็กทั้งหมดนำเสนอในหมวดหมู่ ฉันเหนื่อย: Photo.objects.filter(tags__name__in=categories) แต่จะตรงกับรายการใด ๆในหมวดหมู่ไม่ใช่ทุกรายการ ดังนั้นหากหมวดหมู่เป็น ['วันหยุด', 'ฤดูร้อน'] ฉันต้องการให้รูปภาพมีทั้งแท็กวันหยุดและฤดูร้อน สามารถทำได้หรือไม่?

2
วิธีการเลือก COUNT (*) GROUP BY และ ORDER BY ใน Django
ฉันใช้แบบจำลองธุรกรรมเพื่อติดตามเหตุการณ์ทั้งหมดที่เกิดขึ้นในระบบ class Transaction(models.Model): actor = models.ForeignKey(User, related_name="actor") acted = models.ForeignKey(User, related_name="acted", null=True, blank=True) action_id = models.IntegerField() ...... ฉันจะได้นักแสดง 5 อันดับแรกในระบบของฉันได้อย่างไร ใน sql โดยทั่วไปจะเป็น SELECT actor, COUNT(*) as total FROM Transaction GROUP BY actor ORDER BY total DESC

4
เลือก DISTINCT แต่ละคอลัมน์ใน django?
ฉันสงสัยว่ามีวิธีใดในการค้นหาใน Django ที่ไม่ใช่ " SELECT * FROM..." ที่อยู่ข้างใต้ ฉันกำลังพยายามทำ " SELECT DISTINCT columnName FROM ..." แทน โดยเฉพาะฉันมีโมเดลที่ดูเหมือน: class ProductOrder(models.Model): Product = models.CharField(max_length=20, promary_key=True) Category = models.CharField(max_length=30) Rank = models.IntegerField() โดยที่Rankเป็นอันดับภายในCategory. ฉันต้องการที่จะทำซ้ำทุกหมวดหมู่เพื่อดำเนินการบางอย่างกับแต่ละอันดับภายในหมวดหมู่นั้น ฉันต้องการรับรายการหมวดหมู่ทั้งหมดในระบบก่อนจากนั้นค้นหาผลิตภัณฑ์ทั้งหมดในหมวดหมู่นั้นและทำซ้ำจนกว่าทุกหมวดหมู่จะได้รับการประมวลผล ฉันควรหลีกเลี่ยง SQL ดิบ แต่ถ้าฉันต้องไปที่นั่นก็ไม่เป็นไร แม้ว่าฉันจะไม่เคยเข้ารหัส SQL ดิบใน Django / Python มาก่อน

2
django - ตัวกรองแบบสอบถามในหลาย ๆ ประเทศว่างเปล่า
ใน Django มีวิธีกรองฟิลด์จำนวนมากที่ว่างเปล่าหรือเป็นโมฆะ class TestModel(models.Model): name = models.CharField(_('set name'), max_length=200) manytomany = models.ManyToManyField('AnotherModel', blank=True, null=True) print TestModel.objects.filter(manytomany__is_null=True)

2
หลายต่อหลายคนในรายการแสดง django
class PurchaseOrder(models.Model): product = models.ManyToManyField('Product') vendor = models.ForeignKey('VendorProfile') dollar_amount = models.FloatField(verbose_name='Price') class Product(models.Model): products = models.CharField(max_length=256) def __unicode__(self): return self.products ฉันมีรหัสนั้น ขออภัยข้อผิดพลาดเกิดขึ้นใน admin.py พร้อมกับไฟล์ManyToManyField class PurchaseOrderAdmin(admin.ModelAdmin): fields = ['product', 'dollar_amount'] list_display = ('product', 'vendor') ข้อผิดพลาดระบุว่า: 'PurchaseOrderAdmin.list_display [0]', 'product' คือ ManyToManyField ซึ่งไม่รองรับ อย่างไรก็ตามมันจะรวบรวมเมื่อฉันนำ'product'ออกจากlist_display. ดังนั้นวิธีการที่ฉันสามารถแสดง'product'ในlist_displayโดยไม่ต้องให้มันข้อผิดพลาด? แก้ไข : คำถามที่ดีกว่าอาจจะเป็นวิธีที่คุณแสดงManyToManyFieldในlist_display?



2
TypeError: วัตถุ 'RelatedManager' ไม่สามารถทำซ้ำได้
Django ฉันมีรุ่นต่อไป: class Group(models.Model): name = models.CharField(max_length=100) parent_group = models.ManyToManyField("self", blank=True) def __unicode__(self): return self.name class Block(models.Model): name = models.CharField(max_length=100) app = models.CharField(max_length=100) group = models.ForeignKey(Group) def __unicode__(self): return self.name พูดว่าบล็อกb1มีกลุ่มg1 โดยมันชื่อฉันต้องการที่จะได้รับบล็อคทั้งหมดจากกลุ่มG1 ฉันเขียนฟังก์ชันเรียกซ้ำถัดไป: def get_blocks(group): def get_needed_blocks(group): for block in group.block_set: blocks.append(block) if group.parent_group is not None: get_needed_blocks(group.parent_group) blocks = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.