2017-05-15 7 views
0

save()メソッド内でモデルの名前を取得したいと思います。私はこの行を修正したいsave()メソッドのdjangoモデル名

self.slug = create_slug(self.model_object, self.slug) 

ここで私はモデル名self.model_nameを取得する必要があります。ここでmodel coursebasemodelを継承しましたが、modelという名前をcourseという名前で取得する必要があります。どうやってやるの?誰か助けてください。

class BaseModel(models.Model): 
    slug = models.SlugField(unique=True, max_length=500) 

    def save(self, *args, **kwargs): 
     if self._state.adding == True: 
      if not self.slug: 
       self.slug = create_slug(self.model_object, self.slug) 

     return super(BaseModel, self).save(*args, **kwargs) 

    class Meta: 
     abstract = True 


class Course(BaseModel): 
    title = models.CharField(max_length=128) 

    class Meta: 
     db_table = "course" 

答えて

1

あなたは

self.slug = create_slug(self.__class__, self.slug) 
+0

'はstr' はオブジェクトが属性 'オブジェクト' を持っていない__class__魔法のプロパティを使用することによって、これを達成することができます。私はこのエラーがあります。そのモデルを文字列として取ります。 – tstudent

+1

@tstudent貼り付けたコードに 'objects'の言及はありません。だから私はそれを説明することができませんでした。あなたの質問を更新するか、別の質問を作成してください。 self .__ class __.__ name__の代わりに –

+0

。私は自分自身を試した.__ class__とその仕事。ありがとう.. – tstudent

関連する問題