2010-09-02 10 views
6

यहाँ मेरी सेटअप है:Django व्यवस्थापक में एक बहुत-से-अनेक क्षेत्र आदेश

from django.contrib.auth.models import User 

class Product(models.Model): 
    ... 
    email_users = models.ManyToManyField(User, null=True, blank=True) 
    ... 

[कहीं]

class ProductAdmin(admin.ModelAdmin): 
    list_display = ('name','platform') 

admin.site.register(Product, ProductAdmin) 

मेरा मुख्य समस्या यह है, जब मैं "उत्पाद" पेज देख रहा हूँ व्यवस्थापक अनुभाग में, ईमेल उपयोगकर्ता डिफ़ॉल्ट रूप से उनके आईडी के आधार पर क्रमबद्ध किए जाते हैं नहीं किया जा रहा जा रहा है, और मैं चाहता हूँ कि अपने उपयोगकर्ता नाम द्वारा आदेश दिया जा सकता है।

से मैं अब तक क्या पढ़ा, ऐसा लगता है जैसे मैं जोड़ने की जरूरत है:

email_users.admin_order_field = 'xxxx' 

लेकिन मैं काफी यकीन है कि क्या वाक्य रचना उपयोगकर्ता नाम का उपयोग करने के लिए है नहीं कर रहा हूँ। ,

class ProductAdminForm(ModelForm): 
    email_users = forms.ModelMultipleChoiceField(queryset=User.objects.order_by('username')) 

    class Meta: 
     model = Product 

class ProductAdmin(admin.ModelAdmin): 
    list_display = ('name','platform') 
    form = ProductAdminForm 

admin.site.register(Product, ProductAdmin) 

मेरा अर्थ है कि मैं आवश्यक forms.ModelMultipleChoiceField में थोड़ा अलग था जवाब जबकि:

+0

आप एक ModelForm और ModelChoiceField का उपयोग कर के साथ इस चाल की कोशिश की है? http://stackoverflow.com/questions/1474135/ – hao

+0

धन्यवाद! जाहिरा तौर पर मेरी खोज-फू अभी तक बराबर करने के लिए नहीं है। :) – MichaelC

उत्तर

2

जवाब ऊपर हाओ लियान की टिप्पणी में भेजा गया था, अनिवार्य रूप से, यह क्या किया जा करने की जरूरत है प्रदान की इस्तेमाल किया forms.ModelChoiceField()

संबंधित मुद्दे