Повторное использование кода между классами django и appengine Model - PullRequest
1 голос
/ 14 июня 2009

Я создал пользовательский класс django.auth User, который работает с Google Appengine, но включает в себя значительное количество копируемого кода (практически каждый метод).

Невозможно создать подкласс, потому что appengine и django имеют разные модели баз данных со своей магией метаклассов.

Так что мой вопрос таков: есть ли элегантный способ скопировать методы из класса User django.auth?

from google.appengine.ext import db
from django.contrib.auth import models

class User(db.Model):
    password = db.StringProperty()
    ...
    # copied method
    set_password = models.User.set_password.im_func

Ответы [ 2 ]

0 голосов
/ 15 июня 2009

Возможно, вы захотите взглянуть на то, что делает помощник django или app-engine-patch.

Помощник: http://code.google.com/p/google-app-engine-django/ Патч: http://code.google.com/p/app-engine-patch/

0 голосов
/ 14 июня 2009

Я не уверен, что правильно понял ваш вопрос. Зачем вам нужно определить другой класс "Пользователь", если Django уже предоставляет такую ​​же функциональность?

Вы также можете просто импортировать класс «Пользователь» и добавить ForeignKey для каждой модели. требующий атрибут "пользователь".

...