2009-06-13 13 views
1

Ich erstellte eine benutzerdefinierte django.auth User-Klasse, die mit Google Appengine funktioniert, aber es beinhaltet eine Menge kopierten Code (praktisch jede Methode).Code-Wiederverwendung zwischen Django und Appengine Model Klassen

Es ist nicht möglich, eine Unterklasse zu erstellen, da appengine und django verschiedene Datenbankmodelle mit eigener Metaklassen-Magie haben.

Also meine Frage ist das: Gibt es eine elegante Möglichkeit, Methoden aus django.auth User-Klasse zu kopieren?

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 

Antwort

0

Ich bin nicht sicher, dass ich Ihre Frage richtig verstehe. Warum müssten Sie eine andere "Benutzer" -Klasse definieren, wenn Django bereits die gleiche Funktionalität bietet?

Sie können auch einfach die Klasse "Benutzer" importieren und zu jedem Modell einen ForeignKey hinzufügen, der ein Attribut "user" erfordert.

+0

habe ich eine neue Benutzerklasse, weil Django-Modelle auf appengine nicht funktionieren. – csytan