フォームから更新しようとすると、白いエラー画面が表示されます

ピアスオニール

python / djangoのフォームを介してアイテムを追加しようとすると、白いエラー画面が表示されます。デバッグしようとしていますが、情報がありません。誰かが私を正しい方向に向けることができますか?ここに画像の説明を入力してください

Models.py

from __future__ import unicode_literals
from django.db import models

# Create your models here.
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils import timezone


# Create your models here.
class UserProfile(models.Model):
    image = models.ImageField(upload_to='images', default='Upload Picture')
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
    first_name = models.CharField(max_length=255, blank=True)
    last_name = models.CharField(max_length=255, blank=True)
    address1 = models.CharField(max_length=255, blank=True)
    address2 = models.CharField(max_length=255, blank=True)
    city = models.CharField(max_length=20, null=True)
    county = models.CharField(max_length=100, null=True)
    postcode = models.CharField(max_length=7, null=True)
    biography = models.TextField(max_length=280,blank=True)
    email = models.CharField(max_length=50, blank=True, null=True)
    phone = models.CharField(max_length=10, blank=True)
    dob = models.CharField(max_length=10, blank=True)
    gender = models.CharField(max_length=1, blank=True)
    facebook = models.CharField(max_length=50, blank=True, null=True)
    twitter = models.CharField(max_length=50, blank=True, null=True)
    instagram = models.CharField(max_length=50, blank=True, null=True)

class KidProfile(models.Model):
    parent = models.ForeignKey(User, related_name='kids')
    name = models.CharField(max_length=255, null=True, blank=True)
    dob = models.CharField(max_length=10, null=True, blank=True)
    gender = models.CharField(max_length=1, null=True, blank=True)
    needs = models.CharField(max_length=3, null=True, blank=True)

    def __str__ (self):
        return self.name

views.py

from django.contrib import messages, auth
from accounts.forms import UserRegistrationForm, UserLoginForm, FullUserDetailsForm, KidDetailsForm
from django.core.urlresolvers import reverse
from django.shortcuts import render, redirect, HttpResponseRedirect, HttpResponse, get_object_or_404
from django.template.context_processors import csrf
from django.contrib.auth.decorators import login_required
from .models import KidProfile, UserProfile

@login_required(login_url='/accounts/login')
def profile(request):
    kids = KidProfile.objects.filter(parent=request.user)
    adults = UserProfile.objects.filter(user=request.user)
    return render(request, 'profile.html', {'kids': kids}, {'adults': adults})

def update_profile(request):
    form=FullUserDetailsForm(request.POST, request.FILES)
    if form.is_valid():
        request.user.first_name=form.cleaned_data['first_name']
        request.user.last_name=form.cleaned_data['last_name']
        request.user.email=form.cleaned_data['email']
        request.user.profile.address1=form.cleaned_data['address1']
        request.user.profile.address2=form.cleaned_data['address2']
        request.user.profile.postcode=form.cleaned_data['postcode']
        request.user.profile.phone=form.cleaned_data['phone']
        request.user.profile.dob=form.cleaned_data['dob']
        request.user.profile.gender=form.cleaned_data['gender']
        request.user.profile.facebook=form.cleaned_data['facebook']
        request.user.profile.twitter=form.cleaned_data['twitter']
        request.user.profile.instagram=form.cleaned_data['instagram']
        request.user.save()
        return redirect(reverse('profile'))
    else:
        return HttpResponse("Error")

def update_profile_kid(request, id):
    kid = get_object_or_404(KidProfile, pk=id)
    form=KidDetailsForm(request.POST, request.FILES)
    if form.is_valid():
        kid.name=form.cleaned_data['name']
        kid.dob=form.cleaned_data['dob']
        kid.gender=form.cleaned_data['gender']
        kid.needs=form.cleaned_data['needs']
        kid.save()
        return redirect(reverse('profile'))
    else:
        return HttpResponse("Error")

def create_profile_kid(request):
    form=KidDetailsForm(request.POST, request.FILES)
    if form.is_valid():
        kid=KidProfile()
        kid.name=form.cleaned_data['name']
        kid.dob=form.cleaned_data['dob']
        kid.gender=form.cleaned_data['gender']
        kid.needs=form.cleaned_data['needs']
        kid.parent=request.user
        kid.save()
        return redirect(reverse('profile'))
    else:
        return HttpResponse("Error")

def delete_profile_kid(request, id):
    kid = get_object_or_404(KidProfile, pk=id)
    kid.delete()
    return redirect(reverse('profile'))



def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(username=request.POST.get('username_or_email'),
                                     password=request.POST.get('password'))

            if user is not None:
                auth.login(request, user)
                messages.error(request, "You have successfully logged in")

                if request.GET and request.GET['next'] !='':
                    next = request.GET['next']
                    return HttpResponseRedirect(next)
                else:
                    return redirect(reverse('babysitters'))
            else:
                form.add_error(None, "Your username or password was not recognised")
    else:
        form = UserLoginForm()

    args = {'form': form, 'next': request.GET['next'] if request.GET and 'next' in request.GET else ''}
    args.update(csrf(request))
    return render(request, 'login.html', args)



def logout(request):
    auth.logout(request)
    messages.success(request, 'You have successfully logged out')
    return redirect(reverse('index'))


def register(request):
    if request.method == 'POST':
        form = UserRegistrationForm(request.POST)
        if form.is_valid():
            form.save()

            user = auth.authenticate(username=request.POST.get('username'),
                                     password=request.POST.get('password1'))

            if user:
                auth.login(request, user)
                messages.success(request, "You have successfully registered")
                return redirect(reverse('profile'))

            else:
                messages.error(request, "unable to log you in at this time!")

    else:
        form = UserRegistrationForm()

    args = {'form': form}

    return render(request, 'profile.html', args)

urls.py

from django.conf.urls import url
from .views import register, profile, logout, login, update_profile, update_profile_kid, create_profile_kid, delete_profile_kid

urlpatterns = [
    url(r'^register/$', register, name='register'),
    url(r'^profile/$', profile, name='profile'),
    url(r'^profile/update/$', update_profile, name='update_profile'),
    url(r'^profile/kids/update/(?P<id>\d+)$', update_profile_kid, name='update_profile_kid'),
    url(r'^profile/kids/delete/(?P<id>\d+)$', delete_profile_kid, name='delete_profile_kid'),
    url(r'^profile/kids/create/$', create_profile_kid, name='create_profile_kid'),
    url(r'^logout/$', logout, name='logout'),
    url(r'^login', login, name='login'),
]

問題をデバッグしようとしていますが、これまでのところ失敗しています。誰かが私を助けたり、正しい方向に向けたりできますか?

dirkgroten

ビューは「エラー」という文字列のみを返し、場合によっては情報が返されません。それはあなたが見るものです。

return HttpResponse("Error")「エラー」というテキストを含むドキュメントがブラウザに返されるだけなので、絶対に使用しないでください

When your forms are not valid, you should just return the same page with the bound, invalid form and show the form errors to the user.

Read the Forms documentation and especially how to create a view that handles the three states of a form (unbound, bound invalid and bound valid) properly.

In general one view should handle it like this:

  • If your request.method is GET you create the unbound, empty form (or with some initial values). You then return the template with this form so the user can fill it in.
  • If your request.method is POST you create the bound form and check if it's valid.
    • If valid, you save and redirect.
    • 有効でない場合は、バインドされたフォームを含むテンプレートも返します(GETケースと同じ)。これで、テンプレートに、ユーザーが以前に入力した値とエラーを含むフォームが表示されるため、ユーザーはそれらを修正して再試行できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

HTMLフォームを送信しようとすると、「POSTできません」というエラーが表示されます

分類Dev

HTMLフォームを送信しようとすると、「POSTできません」というエラーが表示されます

分類Dev

ビルドからサブサブフォルダーをクロークしようとすると、「アイテム...はマップされた親がないため、クロークされない可能性があります」というエラーが表示されるのはなぜですか?

分類Dev

デフォルトでAJAXフォームデータを送信しないようにすると、フロントエンドが更新されませんか?

分類Dev

ggplotでフォントを変更しようとすると、「。ttfファイルから.afmファイルを抽出しています...」というエラーが表示されます。なぜですか?

分類Dev

MacがNetBeansにTomcatサーバーをインストールしようとすると、「指定されたサーバーの場所(Catalinaホーム)フォルダーが無効です」というエラーが表示され続けます。

分類Dev

フォームログインフォーム内に赤で表示されるエラー検証を取得しようとしています

分類Dev

フォームログインフォーム内に赤で表示されるエラー検証を取得しようとしています

分類Dev

テーブルを更新しようとすると、データベースからエラーメッセージが表示されます

分類Dev

ユーザーがantdを入力しているときではなく、フォームが送信された後にのみエラーまたは検証メッセージを表示するにはどうすればよいですか?

分類Dev

PHPおよびJSのログインフォームに、ユーザーが存在しないというエラーが表示されます

分類Dev

XamrinフォームにZXing.Net.Mobile.formsを追加してコンパイルしようとすると、エラーが表示されます

分類Dev

Codeigniterから「DisallowedKeyCharacters」というエラーが表示されます。

分類Dev

何も入力されていない場合にエラーを表示する単純なフォームを作成しようとしています

分類Dev

データベースから既存の行を更新しようとすると、Djangoフォームが検証されません

分類Dev

Laravel で画像を更新しようとしていますが、動作しますが、新しいファイルを追加しないことにすると、次のエラーが表示されます: 一般エラー: 1364

分類Dev

ビューを押すと白い画面が表示される

分類Dev

bjyauthorizeにガードを追加すると白い画面が表示されます

分類Dev

Gnuplot出力は、プロット出力が以下のプログラムを提供しているフォルダーに送られるようにプログラムを変更する方法を「画面上」に表示するように設定されています

分類Dev

xcodeでreactnativeを実行すると、エラー画面が白くなります。エラーメッセージが表示されない

分類Dev

Wordpressのカスタムフォルダから画像を表示しようとするとエラー404

分類Dev

VSCodeまたはAndroidStudioのいずれかでAndroidエミュレーターを開こうとすると、「Windowsハイパーバイザープラットフォームアクセラレーターが機能しています」というメッセージが表示されます。

分類Dev

reduxでアクションをエクスポートしようとすると、「デフォルトのエクスポートが含まれていません」というエラーが表示されます。

分類Dev

MySQLエントリを更新しようとすると、「ロック待機タイムアウトを超えました」というエラーが表示されるのはなぜですか?

分類Dev

java.lang.NumberFormatExceptionプログラムを実行しようとするとエラーが表示されます

分類Dev

現在の請求書を更新しようとすると、Odoov8モジュールをOdoov12に移植中にエラーが発生し、ウィザードフォームからデビットノートを追加しています

分類Dev

お問い合わせフォームを送信すると、reactjsでエラーが表示されます

分類Dev

デスクトップはホームフォルダをミラーリングしていて、フォルダを削除するとそれらが完全に削除されます。復元するにはどうすればよいですか?(ubuntu)

分類Dev

フォームが送信されてエラーが発生した後、選択した値を表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    HTMLフォームを送信しようとすると、「POSTできません」というエラーが表示されます

  2. 2

    HTMLフォームを送信しようとすると、「POSTできません」というエラーが表示されます

  3. 3

    ビルドからサブサブフォルダーをクロークしようとすると、「アイテム...はマップされた親がないため、クロークされない可能性があります」というエラーが表示されるのはなぜですか?

  4. 4

    デフォルトでAJAXフォームデータを送信しないようにすると、フロントエンドが更新されませんか?

  5. 5

    ggplotでフォントを変更しようとすると、「。ttfファイルから.afmファイルを抽出しています...」というエラーが表示されます。なぜですか?

  6. 6

    MacがNetBeansにTomcatサーバーをインストールしようとすると、「指定されたサーバーの場所(Catalinaホーム)フォルダーが無効です」というエラーが表示され続けます。

  7. 7

    フォームログインフォーム内に赤で表示されるエラー検証を取得しようとしています

  8. 8

    フォームログインフォーム内に赤で表示されるエラー検証を取得しようとしています

  9. 9

    テーブルを更新しようとすると、データベースからエラーメッセージが表示されます

  10. 10

    ユーザーがantdを入力しているときではなく、フォームが送信された後にのみエラーまたは検証メッセージを表示するにはどうすればよいですか?

  11. 11

    PHPおよびJSのログインフォームに、ユーザーが存在しないというエラーが表示されます

  12. 12

    XamrinフォームにZXing.Net.Mobile.formsを追加してコンパイルしようとすると、エラーが表示されます

  13. 13

    Codeigniterから「DisallowedKeyCharacters」というエラーが表示されます。

  14. 14

    何も入力されていない場合にエラーを表示する単純なフォームを作成しようとしています

  15. 15

    データベースから既存の行を更新しようとすると、Djangoフォームが検証されません

  16. 16

    Laravel で画像を更新しようとしていますが、動作しますが、新しいファイルを追加しないことにすると、次のエラーが表示されます: 一般エラー: 1364

  17. 17

    ビューを押すと白い画面が表示される

  18. 18

    bjyauthorizeにガードを追加すると白い画面が表示されます

  19. 19

    Gnuplot出力は、プロット出力が以下のプログラムを提供しているフォルダーに送られるようにプログラムを変更する方法を「画面上」に表示するように設定されています

  20. 20

    xcodeでreactnativeを実行すると、エラー画面が白くなります。エラーメッセージが表示されない

  21. 21

    Wordpressのカスタムフォルダから画像を表示しようとするとエラー404

  22. 22

    VSCodeまたはAndroidStudioのいずれかでAndroidエミュレーターを開こうとすると、「Windowsハイパーバイザープラットフォームアクセラレーターが機能しています」というメッセージが表示されます。

  23. 23

    reduxでアクションをエクスポートしようとすると、「デフォルトのエクスポートが含まれていません」というエラーが表示されます。

  24. 24

    MySQLエントリを更新しようとすると、「ロック待機タイムアウトを超えました」というエラーが表示されるのはなぜですか?

  25. 25

    java.lang.NumberFormatExceptionプログラムを実行しようとするとエラーが表示されます

  26. 26

    現在の請求書を更新しようとすると、Odoov8モジュールをOdoov12に移植中にエラーが発生し、ウィザードフォームからデビットノートを追加しています

  27. 27

    お問い合わせフォームを送信すると、reactjsでエラーが表示されます

  28. 28

    デスクトップはホームフォルダをミラーリングしていて、フォルダを削除するとそれらが完全に削除されます。復元するにはどうすればよいですか?(ubuntu)

  29. 29

    フォームが送信されてエラーが発生した後、選択した値を表示するにはどうすればよいですか?

ホットタグ

アーカイブ