Собранная информация о пользователях не сохраняется в базе данных с использованием фреймворка django - PullRequest
0 голосов
/ 28 мая 2020

, когда я пытаюсь добавить детали с помощью этой формы, они не обновляются в моей базе данных.

пожалуйста, помогите мне решить эту проблему.

Ошибка отсутствует, но база данных не обновляется .

клуб. html

{% extends "base.html" %}
{% block content %}
     {%ifequal request.user.Isclubmember True%}
        <div class='container'>
        </div>
        {%else%}
        <div class="container">
            <form action="." method="POST">
                {%csrf_token%}
                Profile Pic:
                <input name="image" accept=".png,.jpg,.jpeg" type="file" value=selectimage>
                Phonenumber:
                <input name="userphonenumber" type="number" placeholder="+91 9876543210" >
                <input type="submit" value="submit" class="btn btn-success">
            </form>
        </div>
        {%endifequal%}
{% endblock content %}

views.py

from django.conf import settings
from django.contrib import messages
from django.shortcuts import redirect
from django.contrib.auth.models import User
from .models import  UserProfile, Clubmember
from django.contrib.auth.models import User
from django.contrib.auth import login
from django.http import HttpResponseRedirect

def club(request):
    if request.method == 'POST':
        if request.user.is_authenticated:
            Clubmember.user = request.user
            Clubmember.phone_number = request.POST.get('userphonenumber')
            Clubmember.userphoto = request.FILES.get('image')
            request.user.Isclubmember = True
            request.user.save()
            Clubmember.save()
            return redirect(request,'core:home')
        else:
            return redirect(request,'login_url')
    else:
        return render(request,'core:club')

models.py

class Clubmember(models.Model):
    user = models.ForeignKey(UserProfile,default=1, on_delete=models.CASCADE)
    userphoto = models.ImageField(upload_to="userphotos/%Y/%m",default=False)
    phone_number = models.IntegerField(default=False)
    usermoney = models.FloatField(default=0.0)

1 Ответ

0 голосов
/ 28 мая 2020

Измените вид вот так, он должен работать.

def club(request):
    if request.method == 'POST':
        if request.user.is_authenticated:
            club_member = Clubmember()
            club_member.user = request.user
            club_member.phone_number = request.POST.get('userphonenumber')
            club_member.userphoto = request.FILES.get('image')
            request.user.Isclubmember = True
            request.user.save()
            club_member.save()
            return redirect(request,'core:home')
        else:
            return redirect(request,'login_url')
    else:
        return render(request,'core:club')

и лучший подход -

def club(request):
    if request.method == 'POST':
        if request.user.is_authenticated:
            club_member = Clubmember(
                user=request.user,
                phone_number=request.POST.get('userphonenumber'),
                userphoto=request.FILES.get('image')
            )
            club_member.save()
            request.user.Isclubmember = True
            request.user.save()
            return redirect(request,'core:home')
        else:
            return redirect(request,'login_url')
    else:
        return render(request,'core:club')

...