2013-03-08 27 views
11

Tôi sử dụng ứng dụng đăng ký django và Django 1.5. Cách tạo mô hình người dùng tùy chỉnh (mới trong django) và lưu dữ liệu này trong quá trình đăng ký (Vui lòng lưu ý rằng tôi đang sử dụng đăng ký django):ứng dụng đăng ký django và mô hình người dùng tùy chỉnh Django 1.5

class CustomProfile(models.Model): 
    user = models.ForeignKey(User) 
    name = models.CharField(max_length=255) 
    bank = models.CharField(max_length=255) 
    address = models.CharField(max_length=255) 

?

+1

Bạn có thấy điều này không? http://stackoverflow.com/questions/1072270/saving-profile-with-registration-in-django-registration – rafek

+0

@rafek Tôi thử với mô hình người dùng tùy chỉnh mới (mới ở Django 1.5) – user2054574

Trả lời

9

ngã ba chính của django-đăng ký không tương thích với django 1.5 hiện tại.

Kiểm tra this pull request.

Bạn có ba tùy chọn: Mã

  • patch django đăng ký của. Bạn có thể nhận được các thay đổi cần thiết từ yêu cầu kéo.
  • Sử dụng một ngã ba không chính thức đã được vá. Ví dụ: This one.
  • Chờ cập nhật về ngã ba chính ...
+1

Tôi vừa tải xuống "thân cây" hiện tại phiên bản của ứng dụng 'django-registration' từ bitbucket, và nó hoạt động với Django 1.5 (nó không hoạt động khi tôi sử dụng' pip' để cài đặt ứng dụng). Số phiên bản tôi đã tải xuống là 'VERSION = (0, 9, 0, 'beta', 1)'. – yellowcap

+1

có thể là 'django-registration2'? Tôi vừa mới cài đặt nó thay vì 'django-registration' vì' yolk -V django-registration' chỉ cung cấp 'django-registration 0.8' mà không tương thích với Django == 1.5.1 – boldnik

4

link này giải thích quá trình tốt và làm việc với django đăng ký 1,0

dưới đây là một vài gợi ý thêm, thêm vào đoạn code trên.

Để cập nhật tên đầu tiên thay đổi điều này trong models.py

def user_registered_callback(sender, user, request, **kwargs): 
profile = ExUserProfile(user = user) 
profile.is_human = bool(request.POST["is_human"]) 
user.first_name = request.POST["firstname"] 
user.save() 
profile.save() 

user_registered.connect(user_registered_callback) 

và trong file forms.py

class ExRegistrationForm(RegistrationForm): 
    is_human = forms.BooleanField(label = "Are you human?:") 
    firstname = forms.CharField(max_length=30) 
    lastname = forms.CharField(max_length=30) 

cuối cùng để xem những thay đổi về hình thức tạo ra một mẫu thích hợp. Hồ sơ có thể được nhìn thấy trong quản trị viên bằng cách tạo tệp có tên admin.py trong ứng dụng của bạn và viết mã sau

from django.contrib import admin 
from django.contrib.auth.models import User 
from django.contrib.auth.admin import UserAdmin 
from prof.models import ExUserProfile 

admin.site.unregister(User) 

class UserProfileInline(admin.StackedInline): 
    model = ExUserProfile 

class UserProfileAdmin(UserAdmin): 
    inlines = [ UserProfileInline, ] 

admin.site.register(User, UserProfileAdmin) 
+0

Sẽ không thực sự tạo ra cả người dùng và ví dụ ExUserProfile? –

+1

Có, đó là mục tiêu mô hình người dùng tùy chỉnh được tạo ra bằng cách liên kết ExUserProfile với đối tượng người dùng và lưu các trường cần thiết – timberlake

0

Đăng ký Django 1.0 đã được phát hành gần đây. Nó đã được viết lại hoàn toàn để sử dụng các khung nhìn dựa trên lớp và với hỗ trợ mô hình người dùng tùy chỉnh Django 1.0. Hãy xem docs.