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

สำหรับคำถามเกี่ยวกับการใช้คลาสโมเดลจากเว็บเฟรมเวิร์ก Django


11
ฉันจะโคลนวัตถุตัวอย่างของรุ่น Django และบันทึกลงในฐานข้อมูลได้อย่างไร
Foo.objects.get(pk="foo") <Foo: test> ในฐานข้อมูลฉันต้องการเพิ่มวัตถุอื่นซึ่งเป็นสำเนาของวัตถุด้านบน สมมติว่าตารางของฉันมีหนึ่งแถว ฉันต้องการแทรกวัตถุแถวแรกในแถวอื่นด้วยคีย์หลักที่แตกต่างกัน ฉันจะทำสิ่งนั้นได้อย่างไร

12
แปลงวัตถุโมเดล Django เป็น dict โดยมีทุกฟิลด์เหมือนเดิม
หนึ่งในวิธีการที่ไม่แปลงวัตถุ Django รูปแบบการ Dict ที่มีทั้งหมดของเขตของตนหรือไม่ editable=Falseทั้งหมดนึกคิดรวมถึงปุ่มต่างประเทศและเขตข้อมูลที่มี ให้ฉันทำอย่างละเอียด สมมติว่าฉันมีรุ่น Django ดังต่อไปนี้: from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): normal_value = models.IntegerField() readonly_value = models.IntegerField(editable=False) auto_now_add = models.DateTimeField(auto_now_add=True) foreign_key = models.ForeignKey(OtherModel, related_name="ref1") many_to_many = models.ManyToManyField(OtherModel, related_name="ref2") ในเทอร์มินัลฉันได้ทำสิ่งต่อไปนี้แล้ว: other_model = OtherModel() other_model.save() instance = SomeModel() instance.normal_value = 1 instance.readonly_value = 2 …

7
ฉันจะกรองวัตถุคิวรี่ตามช่วงวันที่ใน Django ได้อย่างไร
ฉันมีฟิลด์ในหนึ่งโมเดลเช่น: class Sample(models.Model): date = fields.DateField(auto_now=False) ตอนนี้ฉันต้องกรองวัตถุตามช่วงวันที่ ฉันจะกรองวัตถุทั้งหมดที่มีวันที่ระหว่าง1-Jan-2011และ31-Jan-2011อย่างไร

3
Django: มูลค่าตัวเลือกการแสดงผล
models.py: class Person(models.Model): name = models.CharField(max_length=200) CATEGORY_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=200, choices=CATEGORY_CHOICES) to_be_listed = models.BooleanField(default=True) description = models.CharField(max_length=20000, blank=True) views.py: def index(request): latest_person_list2 = Person.objects.filter(to_be_listed=True) return object_list(request, template_name='polls/schol.html', queryset=latest_person_list, paginate_by=5) แม่แบบเมื่อผมเรียกperson.genderฉันได้รับ'M'หรือ'F'แทนหรือ'Male''Female' จะแสดงค่า ( 'Male'หรือ'Female') แทนรหัส ( 'M'/ 'F') ได้อย่างไร?

6
Django ตั้งค่าแบบฟอร์มเริ่มต้น
ฉันมีโมเดลดังนี้: class TankJournal(models.Model): user = models.ForeignKey(User) tank = models.ForeignKey(TankProfile) ts = models.IntegerField(max_length=15) title = models.CharField(max_length=50) body = models.TextField() ฉันยังมีรูปแบบโมเดลสำหรับโมเดลด้านบนดังนี้: class JournalForm(ModelForm): tank = forms.IntegerField(widget=forms.HiddenInput()) class Meta: model = TankJournal exclude = ('user','ts') ฉันต้องการทราบวิธีการตั้งค่าเริ่มต้นสำหรับฟิลด์ที่ซ่อนรถถังนั้น นี่คือหน้าที่ของฉันที่จะแสดง / บันทึกฟอร์ม: def addJournal(request, id=0): if not request.user.is_authenticated(): return HttpResponseRedirect('/') # checking if they own the …

9
ฉันจะสร้างกระสุนใน Django ได้อย่างไร
ฉันพยายามที่จะสร้างSlugFieldใน Django ฉันสร้างแบบจำลองง่ายๆนี้: from django.db import models class Test(models.Model): q = models.CharField(max_length=30) s = models.SlugField() จากนั้นฉันทำสิ่งนี้: >>> from mysite.books.models import Test >>> t=Test(q="aa a a a", s="b b b b") >>> t.s 'b b b b' >>> t.save() >>> t.s 'b b b b' b-b-b-bผมคาดหวังว่า

6
Django - วิธีเปลี่ยนชื่อฟิลด์โมเดลโดยใช้ South?
ฉันต้องการเปลี่ยนชื่อของฟิลด์เฉพาะในโมเดล: class Foo(models.Model): name = models.CharField() rel = models.ForeignKey(Bar) ควรเปลี่ยนเป็น: class Foo(models.Model): full_name = models.CharField() odd_relation = models.ForeignKey(Bar) วิธีที่ง่ายที่สุดในการทำเช่นนี้โดยใช้ South คืออะไร

16
บันทึกภาพโดยโปรแกรมไปยัง Django ImageField
ตกลงฉันได้ลองทุกอย่างแล้วและไม่สามารถใช้งานได้ ฉันมีโมเดล Django ที่มี ImageField อยู่ ฉันมีรหัสที่ดาวน์โหลดรูปภาพผ่านทาง HTTP (ผ่านการทดสอบและใช้งานได้) ภาพจะถูกบันทึกลงในโฟลเดอร์ 'upload_to' โดยตรง (upload_to เป็นภาพที่ตั้งไว้ใน ImageField) สิ่งที่ฉันต้องทำคือเชื่อมโยงพา ธ ไฟล์ภาพที่มีอยู่แล้วกับ ImageField ฉันเขียนโค้ดนี้ประมาณ 6 วิธีที่ต่างกัน ปัญหาที่ฉันพบคือรหัสทั้งหมดที่ฉันกำลังเขียนผลลัพธ์ในลักษณะการทำงานต่อไปนี้: (1) Django จะสร้างไฟล์ที่สอง (2) เปลี่ยนชื่อไฟล์ใหม่เพิ่ม _ ไปยังจุดสิ้นสุดของไฟล์ ชื่อจากนั้น (3) ไม่ถ่ายโอนข้อมูลใด ๆ โดยปล่อยให้มันเป็นไฟล์ชื่อว่างเปล่า สิ่งที่เหลืออยู่ในเส้นทาง 'upload_to' คือ 2 ไฟล์ไฟล์หนึ่งที่เป็นรูปภาพจริงและอีกไฟล์หนึ่งที่เป็นชื่อของภาพ แต่ว่างเปล่าและแน่นอนเส้นทาง ImageField ตั้งเป็นไฟล์เปล่าที่ Django พยายามสร้าง . ในกรณีที่ไม่ชัดเจนฉันจะพยายามอธิบาย: ## Image generation …

1
Django Model - เคียวรีแบบตัวพิมพ์เล็ก / ตัวกรอง
ฉันจะสืบค้น / กรองข้อมูลใน Django และเพิกเฉยตัวพิมพ์ของสตริงการสืบค้นได้อย่างไร? ฉันมีสิ่งที่ชอบและชอบที่จะไม่สนใจกรณีของmy_parameter: MyClass.objects.filter(name=my_parameter)

12
Django: รับรายชื่อเขตข้อมูลโมเดล?
ฉันได้กำหนดUserระดับที่ (ในที่สุด) models.Modelที่สืบทอดจาก ฉันต้องการรับรายการเขตข้อมูลทั้งหมดที่กำหนดไว้สำหรับรุ่นนี้ ตัวอย่างเช่นphone_number = CharField(max_length=20). โดยทั่วไปฉันต้องการดึงสิ่งที่สืบทอดมาจากFieldชั้นเรียน ฉันคิดว่าฉันสามารถดึงข้อมูลเหล่านี้ได้โดยการใช้ประโยชน์จากinspect.getmembers(model)แต่รายการที่ส่งคืนจะไม่มีฟิลด์ใด ๆ เหล่านี้ ดูเหมือนว่า Django จะได้ครอบครองชั้นเรียนแล้วและได้เพิ่มคุณสมบัติเวทมนตร์ทั้งหมดและตัดสิ่งที่กำหนดจริง ดังนั้น ... ฉันจะหาสาขาเหล่านี้ได้อย่างไร พวกเขาอาจมีฟังก์ชั่นสำหรับเรียกพวกเขาเพื่อวัตถุประสงค์ภายในของตัวเอง?

9
วิธีที่เร็วที่สุดในการรับวัตถุแรกจากชุดแบบสอบถามใน django หรือไม่?
บ่อยครั้งที่ฉันพบว่าตัวเองต้องการรับวัตถุแรกจากชุดสืบค้นใน Django หรือกลับมาNoneถ้าไม่มี มีหลายวิธีในการทำเช่นนี้ซึ่งทั้งหมดทำงานได้ แต่ฉันสงสัยว่าอันไหนที่มีประสิทธิภาพดีที่สุด qs = MyModel.objects.filter(blah = blah) if qs.count() > 0: return qs[0] else: return None สิ่งนี้ส่งผลให้มีการเรียกฐานข้อมูลสองสายหรือไม่ ดูเหมือนว่าสิ้นเปลือง เร็วกว่าไหม? qs = MyModel.objects.filter(blah = blah) if len(qs) > 0: return qs[0] else: return None ตัวเลือกอื่นจะเป็น: qs = MyModel.objects.filter(blah = blah) try: return qs[0] except IndexError: return None สิ่งนี้สร้างการเรียกฐานข้อมูลเดียวซึ่งดี …

14
จะดึงบันทึกแบบสุ่มโดยใช้ ORM ของ Django ได้อย่างไร
ฉันมีแบบจำลองที่แสดงภาพวาดที่ฉันนำเสนอบนเว็บไซต์ของฉัน ในหน้าเว็บหลักฉันต้องการแสดงบางส่วน: ใหม่ที่สุดหน้าหนึ่งที่ไม่ได้เข้าชมบ่อยครั้งหน้ายอดนิยมและหน้าจอสุ่ม ฉันใช้ Django 1.0.2 ในขณะที่ 3 คนแรกของพวกเขานั้นง่ายต่อการดึงโดยใช้โมเดล django แบบสุดท้าย (แบบสุ่ม) ทำให้ฉันมีปัญหา ฉันสามารถ ofc รหัสในมุมมองของฉันเพื่อสิ่งนี้: number_of_records = models.Painting.objects.count() random_index = int(random.random()*number_of_records)+1 random_paint = models.Painting.get(pk = random_index) มันไม่เหมือนสิ่งที่ฉันต้องการในมุมมองของฉัน - นี่เป็นส่วนหนึ่งของสิ่งที่เป็นนามธรรมและควรจะอยู่ในรูปแบบ นอกจากนี้ที่นี่ฉันต้องดูแลบันทึกที่ถูกลบ (จำนวนระเบียนทั้งหมดจะไม่ครอบคลุมค่าคีย์ที่เป็นไปได้ทั้งหมด) และอาจมีสิ่งอื่น ๆ อีกมากมาย ตัวเลือกอื่น ๆ ที่ฉันสามารถทำได้โดยเฉพาะอย่างยิ่งในสิ่งที่เป็นนามธรรมรุ่น?

6
Django: ทำไมฟิลด์บางรุ่นถึงขัดแย้งกัน?
ฉันต้องการสร้างวัตถุที่มี 2 ลิงค์ไปยังผู้ใช้ ตัวอย่างเช่น: class GameClaim(models.Model): target = models.ForeignKey(User) claimer = models.ForeignKey(User) isAccepted = models.BooleanField() แต่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อใช้เซิร์ฟเวอร์: Accessor for clashes 'target' field ที่มีฟิลด์ที่เกี่ยวข้อง 'User.gameclaim_set' เพิ่มอาร์กิวเมนต์ related_name เข้ากับคำจำกัดความของ 'target' การเข้าถึงสำหรับฟิลด์ 'ผู้อ้างสิทธิ์' ที่มีฟิลด์ที่เกี่ยวข้อง 'User.gameclaim_set' เพิ่มอาร์กิวเมนต์ related_name เข้ากับคำจำกัดความของ'aimer ' คุณช่วยอธิบายได้ไหมว่าทำไมฉันถึงได้รับข้อผิดพลาดและวิธีแก้ไข?

13
ในวิธีการบันทึก () แบบกำหนดเอง django รุ่นคุณควรระบุวัตถุใหม่ได้อย่างไร
ฉันต้องการเรียกใช้การกระทำพิเศษในวิธีการบันทึก () ของวัตถุโมเดล Django เมื่อฉันบันทึกระเบียนใหม่ (ไม่อัปเดตระเบียนที่มีอยู่) การตรวจสอบ (self.id! = None) เป็นสิ่งที่จำเป็นและเพียงพอที่จะรับประกันว่าการบันทึกข้อมูลตนเองเป็นเรื่องใหม่และไม่มีการปรับปรุงหรือไม่? มีกรณีพิเศษที่อาจมองข้ามไปหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.