如何从python中的另一个类调用classmethod?

时间:2014-02-27 20:48:48

标签: python django-models class-method edx

我正在使用Django为edXproyect编写应用程序,我需要从auth_user表中检索一些信息,我不知道该怎么做。我有这个:

models.py

from django.db import models
from django.contrib.auth.models import User


class Recomendacion(models.Model):

    usuario = models.ForeignKey(User, db_column='username', primary_key=True)
    recurso = models.CharField(max_length=255, db_column='next_module')

    def __str__(self):
        return u'%s' % (self.usuario.username)

admin.py

from django.contrib import admin
from recomendador.models import Recomendacion

class RecomendacionAdmin(admin.ModelAdmin):

    fields = ['usuario', 'recurso']
    list_display = ['usuario', 'recurso']

admin.site.register(Recomendacion, RecomendacionAdmin)

但我希望显示如下内容:

list_display = ['id', 'usuario', 'full_name', 'recurso']

因此,我必须使用id字段从full_name检索auth_tableusername。我尝试在Recomendador中添加classmethods,如:

def get_id(self):
    return self.usuario.id

现在我想从RecomendacionAdmin课程中调用它们,这样我就可以列出idfull_name字段,但我不知道该怎么做。我用谷歌搜索了它,但我只得到我发现的解决方案的异常和错误。谁能帮我这个?我是python的新手......

1 个答案:

答案 0 :(得分:0)

由于源代码不是英语而有100%确定您要查找的内容有点麻烦,但如果您希望获取Recomendacionadmin.py的数据,那么已经导入Recomendacion,您应该能够执行以下操作:

recomendacion = Recomendacion.objects.get(username=desired_username)

这将为您提供用户名是您要查找的对象,然后您只需访问idfull_name字段。