অ্যাডমিন অ্যাকশন সাইডবারে জ্যাঙ্গো "xxxxxx অবজেক্ট" প্রদর্শন কাস্টমাইজেশন


110

আমি অ্যাডমিন সাম্প্রতিক পরিবর্তিত পার্শ্বদণ্ডে "অবজেক্টস" এর নামটি কীভাবে প্রদর্শন করে তার ডিফল্ট আচরণ পরিবর্তন করতে চাই। নীচের ছবিটি দেখুন:

সাম্প্রতিক ক্রিয়া মডিউলে এটি "মাইমডেলনাম অবজেক্ট" হিসাবে নতুন বস্তুগুলিও দেখায়

এডমিনে কীভাবে এগুলির নামকরণ করা হয়েছে তা আমি পরিবর্তন করতে চাই। আদর্শভাবে, আমি এটি "মাইমোডেলনাম অবজেক্ট" থেকে পরিবর্তন করতে সক্ষম হতে চাই, "নীতি" অবজেক্ট উদাহরণ হিসাবে, "নীতি: {Name নীতির" নীতি নাম "ক্ষেত্রের মান something}}

আমি ভাবছিলাম যে __unicode__আমার রোগী মডেলটির জন্য এটি পরিচালনা করেছে, তবে এটি প্রদর্শিত হয় না। কোন সহায়তা প্রশংসা করা হয়।


1
__unicode__এটা করে। আপনার কোডটি আটকান যাতে আমরা কী ভুল তা দেখতে পারি
ড্যান-ক্লাসন

__unicode__পাইথন ৩ এ আমার জন্য কাজ করেনি তবে যাইহোক, __str__নীচের উত্তরে নথিবদ্ধ হিসাবে কাজ করেছেন
ড্যান কিং কিং

উত্তর:


168

__unicode__এটা করে। আপনার মডেলটি এর মতো দেখতে হবে:

class SomeModel(models.Model):
    def __unicode__(self):
       return 'Policy: ' + self.name

পাইথন 3 এ আপনাকে ব্যবহার করতে হবে __str__:

def __str__(self):
   return 'Policy: ' + self.name

1
আমি বোকামি করে খেয়াল করিনি যে আমি প্রতিটি মডেলের জন্য ইউনিকোড পদ্ধতি ঘোষণা করেছি এটি ছাড়াই। : দোহ: দুঃখিত সব।
প্যাট্রিকন

29

__str__পদ্ধতিটি ব্যবহার করে পাইথন 3 এবং জ্যাঙ্গো 1.8 এ কাজ করে:

class MyModel(models.Model):

    name = models.CharField(max_length=60)

    def __str__(self):
        return 'MyModel: {}'.format(self.name)

3
এটি আমার জন্যও সমাধান হয়েছে। আমি পাইথন 3 এবং জ্যাঙ্গো 1.8 ব্যবহার করি।
টিওডোর স্কর্পান 21

স্ট্রিংটি পুরানো উপায় ..... তবুও অজগর 3 জ্যাঙ্গোর সাথে, নতুন উপায় ( ইউনিকোড ) কাজ করে না?
ব্যবহারকারী 798719

13

আপনি যে স্ট্রিংটি দেখছেন তা __unicode__পদ্ধতি থেকে আসছে , অন্যরা উল্লেখ করেছে। তবে কথাটি হ'ল অ্যাডমিন কোনও লগ ইভেন্ট তৈরি করার সময় স্ট্রিং প্রতিনিধিত্ব সংরক্ষণ করে, সুতরাং __unicode__লগ এন্ট্রি সংরক্ষণের পরে আপনি যদি প্রয়োগটি যুক্ত করেন তবে পুরানো আইটেমগুলিতে আপনি নতুন শিরোনাম দেখতে পাবেন না, কেবলমাত্র আপনি কিছু নতুন ক্রিয়াকলাপ করার পরে


আমি তখনই ভাবছিলাম যে অ্যাকশন লগটি আমি ইউনিকোড সেট করার পরে নামগুলি দেখায় না কেন - আমার জানা উচিত এটি তৈরির সময় ডেবিতে সংরক্ষণ করা একটি লগই ছিল!
মার্কওয়াকার_

2
আপনাকে ধন্যবাদ, আপনি যদি এটি ব্যাখ্যা না করে থাকেন তবে আমাকে একটি বিরাট ঝামেলা
দিতেন

7

উত্তর উল্লেখ __str__এবং __unicode__পদ্ধতি সঠিক। তবে ডক্সে যেমন বলা হয়েছে , সংস্করণ ১.6 (আমার মনে হয়) থেকে আপনি পাইথন 2 এবং পাইথন 3 উভয়েরpython_2_unicode_compatible জন্য সজ্জা ব্যবহার করতে পারেন :

from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible
class MyClass(models.Model):
    def __str__(self):
        return "Instance of my class"

আপনি উপরেরগুলি অ- Modelঅবজেক্টগুলিতেও ব্যবহার করতে পারেন ।


3

আপনাকে নির্ধারণ করতে হবে, আপনি যে কলামটি প্রদর্শন করতে চান ...

উদাহরণ স্বরূপ:

class POAdmin(admin.ModelAdmin):
    list_display = ('qty', 'cost', 'total')

2

আপনি ঠিক যে চিন্তা __unicode__করে। আমার এখনই এটি চলছে:

class Film(models.Model):
    title = models.CharField(max_length=200)
    ...
    def __unicode__(self):
        return self.title

আমি যখন সাম্প্রতিক ক্রিয়াকলাপের তালিকায় যাচ্ছি তখন আমি সদ্য সম্পাদনা করা ছবির শিরোনামটি দেখি।


2

এই কাজ করবে, Def ব্যবহার Str (স্ব): যা self.title ফেরৎ

এর মতো কিছু ব্যবহার করুন:

class Blog(models.Model):
    title = models.CharField(max_length=200)
    def __str__(self):
        return self.title

1

যেহেতু এই প্রশ্নটি 6 বছরের পুরানো, তাই অনেক কিছুই পরিবর্তিত হয়েছে। আমাকে এটিতে একটি আপডেট করতে দাও p পাইথন ৩. D এবং জাঙ্গোর সর্বশেষতম সংস্করণ (২.১.২) এর সাথে আপনার সর্বদা __str__()নতুন কোড ব্যবহার করা উচিত । __unicode__()পাইথন 2.7 এর জন্য একটি পুরানো গল্প কারণ পাইথন 3-এ strরয়েছে unicode


0

যোগ করে __str__()মডেলের পদ্ধতি Patientএই ভাবে:

class Patient(models.Model):
name=models.CharField(max_length=200)
#.........
def __str__(self):
    return self.name

পরিবর্তে বস্তু রোগীর নাম প্রদর্শিত হবে। বিস্তারিত জানার জন্য এখানে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.