Python Django表单替换旧输入

时间:2017-07-11 17:21:05

标签: python django django-forms

我目前正试图提出注册表格,但每次我测试时,新注册人都会替换旧注册。所以我一次无法拥有多个用户。

任何帮助都会很棒,因为我不知道该怎么做。感谢。

我的观点:

def register_page(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        new_user = bitcoinUser(first_name=cd['first_name'], 
                               last_name=cd['last_name'],
                               phone_number=cd['phone_number'])
        new_user.save()

我的模特:

class bitcoinUser(models.Model):
     first_name = models.CharField(max_length=100)
     last_name = models.CharField(max_length=100)
     phone_number = models.IntegerField(primary_key=True)

1 个答案:

答案 0 :(得分:0)

老实说,我不知道为什么这不起作用(我认为这是因为你保存了对象'new_user'而不是表单),但我会推荐我在Django中表单的方式:

models.py:

from django.forms import ModelForm

class Bitcoinuser(models.Model):
    first_name = models.CharField(max_length=36)
    last_name = models.CharField(max_length=36)
    phone = models.IntegerField(primary_key=True)

    def __str__(self):
        return self.name

class BitcoinuserForm(ModelForm):
    class Meta:
        model = Bitcoinuser
        fields = ['first_name', 'last_name', 'phone']

views.py:

from .models import BitcoinuserForm

def get_bitcoinuser(request):
    if request.method == 'POST':
        form = BitcoinuserForm(request.POST)
        if form.is_valid():
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            phone = form.cleaned_data['phone']
            form.save()

            return HttpResponseRedirect('/database/')

    else:
        form = BitcoinuserForm()

    return render(request, 'appname/get_bitcoinuser.html', {'form': form})

这很简单,很好,并且工作正常。