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

อินเทอร์เฟซผู้ดูแลระบบอัตโนมัติในตัวของ Django (django.contrib.admin) ซึ่งเป็นส่วนหนึ่งของเฟรมเวิร์ก Django Web สำหรับภาษาโปรแกรม Python

13
“ list_display” ใน Django ModelAdmin สามารถแสดงคุณสมบัติของช่อง ForeignKey ได้หรือไม่?
ฉันมีPersonรูปแบบที่มีความสัมพันธ์กับคีย์ต่างประเทศBookซึ่งมีหลายฟิลด์ แต่ฉันกังวลมากที่สุดauthor(CharField มาตรฐาน) ในPersonAdminแบบจำลองของฉันฉันต้องการแสดงbook.authorโดยใช้list_display: class PersonAdmin(admin.ModelAdmin): list_display = ['book.author',] ฉันได้ลองวิธีการทั้งหมดที่ชัดเจนในการทำเช่นนั้นแล้ว แต่ดูเหมือนว่าจะไม่มีอะไรทำงาน ข้อเสนอแนะใด ๆ

13
Django auto_now และ auto_now_add
สำหรับ Django 1.1 ฉันมีสิ่งนี้ใน models.py ของฉัน: class User(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) เมื่อทำการอัพเดตแถวฉันจะได้รับ: [Sun Nov 15 02:18:12 2009] [error] /home/ptarjan/projects/twitter-meme/django/db/backends/mysql/base.py:84: Warning: Column 'created' cannot be null [Sun Nov 15 02:18:12 2009] [error] return self.cursor.execute(query, args) ส่วนที่เกี่ยวข้องของฐานข้อมูลของฉันคือ: `created` datetime NOT NULL, `modified` datetime NOT NULL, นี่เป็นสาเหตุของความกังวลหรือไม่? คำถามด้าน: ในเครื่องมือผู้ดูแลระบบของฉันทั้งสองฟิลด์จะไม่ปรากฏขึ้น คาดหวังหรือไม่?

1
ฉันจะทำให้ฟิลด์หลายต่อหลายตัวเลือกใน Django ได้อย่างไร
เมื่อคุณมีความสัมพันธ์หลายต่อหลายคน ( related_nameไม่ใช่through) และคุณกำลังพยายามใช้ส่วนต่อประสานผู้ดูแลระบบคุณจะต้องป้อนหนึ่งในความสัมพันธ์แม้ว่าคุณจะไม่จำเป็นต้องสร้างรายการแรก ฉันกำลังสร้างแอพที่เป็นผู้จัดงาน ลองนึกภาพเรามีEventและGroupแบบจำลองที่ผูกพันกับความสัมพันธ์แบบหลายต่อหลายคน Django related_nameสร้างตารางอื่นด้วยดัชนีของอีกสองตาราง แต่ฉันเห็นเหตุผลว่าทำไมโต๊ะพิเศษนี้ได้ที่จะมีประชากร ถ้าฉันทำงานกับฐานข้อมูลผ่าน phpMyAdmin ฉันสามารถสร้างได้Groupโดยไม่ต้องลงทะเบียนEventเนื่องจากการเชื่อมต่อระหว่างทั้งสองจะผ่านตารางแยกต่างหากเท่านั้นและไม่มีการบังคับใช้ค่าฐานข้อมูลในระดับที่กำหนด ฉันจะทำให้อินเทอร์เฟซผู้ดูแลระบบรู้ได้อย่างไร ฉันจะสร้างฟิลด์จำนวนมากต่อกลุ่มใน Django ได้อย่างไร

17
ผู้ดูแลระบบ Django - เปลี่ยนข้อความ 'การบริหาร Django'
หนึ่งจะเปลี่ยนข้อความ 'การบริหาร Django' ในส่วนหัวของผู้ดูแลระบบ django ได้อย่างไร? ดูเหมือนจะไม่ครอบคลุมในเอกสาร "การปรับแต่งผู้ดูแลระบบ"

9
รับ URL ผู้ดูแลระบบ Django สำหรับวัตถุ
ก่อน Django 1.0 มีวิธีง่าย ๆ ในการรับ url ของวัตถุและฉันได้เขียนตัวกรองขนาดเล็กที่ฉันใช้เช่นนี้ <a href="{{ object|admin_url }}" .... > ... </a> โดยทั่วไปฉันใช้ฟังก์ชันย้อนกลับ URL ด้วยชื่อมุมมอง 'django.contrib.admin.views.main.change_stage' reverse( 'django.contrib.admin.views.main.change_stage', args=[app_label, model_name, object_id] ) เพื่อรับ URL อย่างที่คุณอาจคาดเดาได้ฉันกำลังพยายามอัปเดตเป็น Django เวอร์ชันล่าสุดและนี่เป็นหนึ่งในอุปสรรคที่ฉันเจอวิธีการรับ URL ผู้ดูแลระบบไม่ทำงานอีกต่อไป ฉันจะทำสิ่งนี้ใน django 1.0 ได้อย่างไร (หรือ 1.1 สำหรับเรื่องนั้นเพราะฉันพยายามอัปเดตเป็นเวอร์ชั่นล่าสุดใน svn)

2
ผู้ดูแลระบบหลายรุ่น / มุมมองสำหรับรุ่นเดียวกันในผู้ดูแลระบบ Django
ฉันจะสร้างมากกว่าหนึ่ง ModelAdmin สำหรับรุ่นเดียวกันโดยแต่ละแบบกำหนดเองแตกต่างกันและเชื่อมโยงกับ URL ที่แตกต่างกันอย่างไร สมมติว่าฉันมีรุ่น Django ชื่อกระทู้ ตามค่าเริ่มต้นมุมมองผู้ดูแลระบบของรุ่นนี้จะแสดงรายการวัตถุโพสต์ทั้งหมด ฉันรู้ว่าฉันสามารถปรับแต่งรายการของวัตถุที่แสดงบนหน้าในรูปแบบต่างๆโดยการตั้งค่าตัวแปรเช่น list_display หรือแทนที่querysetวิธีการใน ModelAdmin ของฉันเช่น: class MyPostAdmin(admin.ModelAdmin): list_display = ('title', 'pub_date') def queryset(self, request): request_user = request.user return Post.objects.filter(author=request_user) admin.site.register(MyPostAdmin, Post) โดยค่าเริ่มต้นนี้จะสามารถเข้าถึงได้ที่ /admin/myapp/postURL อย่างไรก็ตามฉันต้องการมีหลายมุมมอง / ModelAdmins ของโมเดลเดียวกัน เช่น/admin/myapp/postจะแสดงรายการออบเจกต์ทั้งหมดและ/admin/myapp/mypostsจะแสดงรายการโพสต์ทั้งหมดที่เป็นของผู้ใช้และ/admin/myapp/draftpostอาจแสดงรายการโพสต์ทั้งหมดที่ยังไม่ได้เผยแพร่ (นี่เป็นเพียงตัวอย่างกรณีการใช้จริงของฉันซับซ้อนกว่า) คุณไม่สามารถลงทะเบียนมากกว่าหนึ่ง ModelAdmin สำหรับรุ่นเดียวกัน (ผลลัพธ์นี้มีAlreadyRegisteredข้อยกเว้น) เป็นการดีที่ฉันจะทำสิ่งนี้ให้สำเร็จโดยไม่ต้องใส่ทุกอย่างไว้ใน ClassAdmin ชั้นเดียวและเขียนฟังก์ชั่น 'urls' ของตัวเองเพื่อส่งคืนชุดสืบค้นที่แตกต่างกันขึ้นอยู่กับ URL ฉันเคยดูที่ Django …

2
Django แก้ไขผู้ดูแลระบบพหูพจน์
ฉันจะเปลี่ยนชื่อรุ่นบางส่วนจาก "หมวดหมู่" เป็น "หมวดหมู่" บนไซต์ผู้ดูแลระบบในรุ่น dev django ใหม่ได้อย่างไร ในรุ่นเก่า (โดยไม่มีไซต์ผู้ดูแลระบบและรุ่นผู้ดูแลระบบ) คุณสามารถทำได้ http://www.the-dig.com/blog/post/customize-plural-name-django-admin/ อย่างไรก็ตาม - ตอนนี้การตั้งค่า verbose_name_plural ภายใน classadmin ตามรุ่นของฉันไม่ทำอะไรเลย ใคร encouter เรื่องเดียวกัน?

5
ผู้ดูแลระบบ Django - ปิดการใช้งานการกระทำ 'เพิ่ม' สำหรับรุ่นเฉพาะ
ฉันมีไซต์ django พร้อมโมเดลและฟอร์มมากมาย ฉันมีฟอร์มและฟอร์มที่กำหนดเองจำนวนมากและชุดรูปแบบอินไลน์และการตรวจสอบความถูกต้องที่กำหนดเองและแบบสอบถามที่กำหนดเอง ดังนั้นการดำเนินการเพิ่มรูปแบบขึ้นอยู่กับรูปแบบที่ต้องการสิ่งอื่น ๆ และ 'เพิ่มรูปแบบ' ในผู้ดูแลระบบ django ตลอด 500 จากชุดแบบสอบถามที่กำหนดเอง อย่างไรก็ตามมีการปิดใช้งานฟังก์ชั่น 'เพิ่ม $ MODEL' สำหรับบางรุ่นหรือไม่ ฉันต้องการ/admin/appname/modelname/add/ให้ข้อผิดพลาด 404 (หรือข้อผิดพลาด 'หายไป' ที่เหมาะสม) ฉันไม่ต้องการให้ปุ่ม 'เพิ่ม $ MODELNAME' ปรากฏ/admin/appname/modelnameขึ้น ผู้ดูแลระบบ Django มีวิธีปิดใช้งานการกระทำของผู้ดูแลระบบ (http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions) อย่างไรก็ตามการดำเนินการสำหรับรุ่นนี้คือ 'delete_selected' เช่นการกระทำของผู้ดูแลระบบกระทำเฉพาะกับรุ่นที่มีอยู่เท่านั้น มีวิธีการทำ django-esque บ้างไหม?

11
จะลบล้างและขยายเทมเพลตผู้ดูแลระบบ Django พื้นฐานได้อย่างไร
ฉันจะลบล้างเทมเพลตผู้ดูแลระบบ (เช่น admin / index.html) ได้อย่างไรในขณะเดียวกันก็ขยาย (ดูhttps://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing -an-admin-template )? อันดับแรก - ฉันรู้ว่ามีการถามและตอบคำถามนี้มาก่อนแล้ว (ดูDjango: การแทนที่และการขยายเทมเพลตแอป ) แต่เนื่องจากคำตอบบอกว่าไม่สามารถใช้ได้โดยตรงหากคุณใช้ตัวโหลดเทมเพลต app_directories (ซึ่งส่วนใหญ่เป็น เวลา). วิธีแก้ปัญหาปัจจุบันของฉันคือทำสำเนาและขยายจากสิ่งเหล่านี้แทนที่จะขยายโดยตรงจากเทมเพลตผู้ดูแลระบบ วิธีนี้ใช้งานได้ดี แต่สับสนมากและเพิ่มงานพิเศษเมื่อเทมเพลตผู้ดูแลระบบเปลี่ยนไป อาจนึกถึงแท็กส่วนขยายที่กำหนดเองสำหรับเทมเพลต แต่ฉันไม่ต้องการสร้างวงล้อใหม่หากมีวิธีแก้ไขอยู่แล้ว หมายเหตุด้านข้าง: มีใครรู้บ้างว่าปัญหานี้จะได้รับการแก้ไขโดย Django เองหรือไม่?

1
list_display - ไอคอนบูลีนสำหรับวิธีการ
เมื่อกำหนดอาร์เรย์ list_display สำหรับModelAdminคลาสถ้า a BooleanFieldหรือNullBooleanFieldได้รับ UI จะใช้ไอคอนที่ดูดีแทนข้อความ True / False ในคอลัมน์ หากมีการให้วิธีการที่ส่งคืนบูลีนมันก็เพียงแค่พิมพ์ True / False ออกมา มีวิธีทำให้ใช้ไอคอนสวยสำหรับวิธีบูลีนหรือไม่?

3
Django admin: วิธีจัดเรียงตามฟิลด์ list_display แบบกำหนดเองที่ไม่มีฟิลด์ฐานข้อมูล
# admin.py class CustomerAdmin(admin.ModelAdmin): list_display = ('foo', 'number_of_orders') # models.py class Order(models.Model): bar = models.CharField[...] customer = models.ForeignKey(Customer) class Customer(models.Model): foo = models.CharField[...] def number_of_orders(self): return u'%s' % Order.objects.filter(customer=self).count() ฉันจะจัดเรียงลูกค้าได้อย่างไรขึ้นอยู่กับว่าnumber_of_ordersพวกเขามี? admin_order_fieldไม่สามารถใช้คุณสมบัติที่นี่ได้เนื่องจากต้องใช้ฟิลด์ฐานข้อมูลเพื่อจัดเรียง เป็นไปได้หรือไม่เนื่องจาก Django อาศัยฐานข้อมูลพื้นฐานในการจัดเรียง การสร้างฟิลด์รวมเพื่อให้มีจำนวนคำสั่งซื้อดูเหมือนจะเกินความจำเป็น สิ่งที่น่าสนุก: หากคุณเปลี่ยน url ด้วยตนเองในเบราว์เซอร์เพื่อจัดเรียงในคอลัมน์นี้ - มันทำงานได้ตามที่คาดไว้!

9
Django“ xxxxxx Object” แสดงการปรับแต่งในแถบด้านข้างการดำเนินการของผู้ดูแลระบบ
ฉันต้องการเปลี่ยนพฤติกรรมเริ่มต้นของการเปลี่ยนแปลงล่าสุดของผู้ดูแลระบบแถบด้านข้างแสดงชื่อของ "วัตถุ" ที่เพิ่มเข้ามา ดูภาพด้านล่าง: ฉันต้องการเปลี่ยนวิธีการตั้งชื่อใน Admin ตามหลักการแล้วฉันต้องการที่จะเปลี่ยนจาก "MyModelName object" เป็นในตัวอย่างออบเจ็กต์ "Policy" เช่น "Policy: {{value of the policy's" Policy Name "}} ฉันคิดว่า__unicode__สำหรับแบบจำลองผู้ป่วยของฉันจัดการสิ่งนี้ แต่ดูเหมือนจะไม่ ขอขอบคุณความช่วยเหลือใด ๆ

14
ปรับขนาดฟิลด์ใน Django Admin
Django มีแนวโน้มที่จะเติมช่องว่างแนวนอนเมื่อเพิ่มหรือแก้ไขรายการในผู้ดูแลระบบ แต่ในบางกรณีจะเป็นการสิ้นเปลืองพื้นที่อย่างแท้จริงเมื่อแก้ไขฟิลด์วันที่กว้าง 8 อักขระหรือ CharField เช่นกัน 6 หรือ 8 กว้างตัวอักษรจากนั้นช่องแก้ไขจะเพิ่มขึ้นเป็น 15 หรือ 20 ตัวอักษร ฉันจะบอกผู้ดูแลระบบได้อย่างไรว่ากล่องข้อความควรกว้างแค่ไหนหรือความสูงของกล่องแก้ไข TextField

4
ผู้ดูแลระบบ Django ที่ดีกว่า ManyToMany Field Widget
ฉันพบว่าmodels.ManyToManyFieldวิดเจ็ตเริ่มต้นของ Django Admin นั้นยุ่งยากในการใช้งาน เป็นองค์ประกอบเลือก HTMLและหากคุณมี Objects ของโมเดล "อื่น" จำนวนมากแสดงว่าเป็นไปไม่ได้เลยที่จะหาวัตถุ "อื่น" ที่คุณต้องการเชื่อมโยงกับวัตถุ "นี้" และหากคุณมีออบเจ็กต์ของโมเดล "อื่น" จำนวนมากดูเหมือนว่าจะทำให้การแสดงผลหน้าผู้ดูแลระบบช้าลงด้วยซ้ำ ฉันทราบว่าฉันสามารถสร้างวิดเจ็ตผู้ดูแลระบบที่กำหนดเองและใช้กับวิดเจ็ตของฉันได้ManyToManyFieldsตามที่เห็นสมควร แต่มีสิ่งใดบ้างที่ฉันสามารถใช้แทนได้ ในความฝันของฉันฉันนึกภาพวิดเจ็ต HTML ป้อนข้อความอัตโนมัติ สิ่งนี้สามารถทำได้จริง / ทำได้ในกรอบการดูแลระบบ Django หรือไม่? ขอบคุณ.

3
ค่าดีฟอลต์สำหรับฟิลด์ในโมเดล Django
สมมติว่าฉันมีโมเดล: class SomeModel(models.Model): id = models.AutoField(primary_key=True) a = models.CharField(max_length=10) b = models.CharField(max_length=7) ขณะนี้ฉันกำลังใช้ผู้ดูแลระบบเริ่มต้นเพื่อสร้าง / แก้ไขวัตถุประเภทนี้ ฉันจะลบเขตข้อมูลbจากผู้ดูแลระบบเพื่อให้แต่ละวัตถุไม่สามารถถูกสร้างขึ้นโดยมีมูลค่าและค่อนข้างจะได้รับค่าเริ่มต้น0000000?

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