RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[django-model]

Martin Hope
Turchik
Asked: 2023-01-31 02:56:04 +0000 UTC

Django 从另一个外键模型中获取数据

  • 5

帮助我了解如何从rgb模型中获取rgb_name数据,现在我只得到rgb_numb

模型.py

class Rgb(models.Model):
    rgb_numb = models.CharField('Номер', max_length=10)
    rgb_name = models.CharField('Наименование', max_length=500)
    rgb_mod = models.CharField('Наименование', max_length=500)

    def __str__(self):
        return self.rgb_numb
  
class Reestr_db(models.Model):
    id_numb = models.CharField('Номер протокола', max_length=10, blank=True)
    rgb_numb = models.ForeignKey(rgb, on_delete=models.PROTECT, related_name="result_rgb_numb", verbose_name="Номер")
    rgb_name = models.ForeignKey(rgb, on_delete=models.PROTECT, related_name="result_rgb_name", verbose_name="Наименование")

视图.py

def reestr(request):
    bazar = rgb.objects.all()
    baza = reestr_db.objects.order_by('id_numb')
    datar = {
        'baza': baza,
        'bazar': bazar
    }
    return render(request, 'main/reestr.html', datar)

注册.html

  {% for el in baza %}
        <tr>
            <td>{{ el.result_rgb_numb.rgb_mod }}</td>
            <td>{{ el.result_rgb_name.rgb_name }}</td>
django-model
  • 2 个回答
  • 48 Views
Martin Hope
Арсений Григорьев
Asked: 2022-07-03 03:22:56 +0000 UTC

通过 django 表单创建新用户时的困难

  • 2

我正在努力在网站上注册。我的问题是内置的用户模型保存成功,而另一个相关模型的元素无法保存并且在某处丢失(种类)。我认为问题出在 .save() 的错误组织上,但我不明白到底是什么问题。创建新用户的测试进展顺利。结果,使用输入的数据创建了一个用户,但 Kind 除外。我部分遵循了本教程:https ://tproger.ru/translations/extending-django-user-model/ ,但显然我在某处犯了错误。我真的希望能帮上忙!

模型.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

class Kind(models.Model):
    class Kinds(models.TextChoices):
        M = '1', "М"
        F = '2', "Ж"

    class Confirmations(models.TextChoices):
        S = '1', "Не подтвержден"
        N = '2', "Подтвержден"

    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
    avatar = models.ImageField(null=True, blank=True, upload_to="avatars/", verbose_name='Изображение')
    kind = models.CharField(max_length=1, choices=Kinds.choices, verbose_name='Пол')
    confirmation = models.CharField(max_length=1, default='1', choices=Confirmations.choices, verbose_name='Подтверждение')

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Kind.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()

视图.py

from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect
from django.core.files.storage import FileSystemStorage
from Вход.forms import *
from .models import *


def registrationn(request):
    if request.method == 'POST':
        user_form = UserRegistrationForm(request.POST)
        kind_form = UserKindForm(request.POST, instance=request.user.profile)

        if user_form.is_valid() and kind_form.is_valid():
            new_user = user_form.save()
            new_user.set_password(user_form.cleaned_data['password'])
            new_user.save()

            new_kind = kind_form.save()
            new_kind.save()

            return render(request, 'registration/registration_done.html', {'new_user': new_user, 'new_kind': new_kind})
    else:
        user_form = UserRegistrationForm()
        kind_form = UserKindForm()

    return render(request, 'registration/registration.html', {'user_form': user_form, 'kind_form': kind_form})

...

表格.py

from .models import Kind
from django.forms import ModelForm
from django import forms
from django.contrib.auth.models import User

class UserRegistrationForm(forms.ModelForm):
    password = forms.CharField(label='Password', widget=forms.PasswordInput)
    password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput)

    class Meta:
        model = User
        fields = ('username', 'first_name', 'email')

    def clean_password2(self):
        cd = self.cleaned_data
        if cd['password'] != cd['password2']:
            raise forms.ValidationError('Passwords don\'t match.')
        return cd['password2']

class UserKindForm(forms.ModelForm):
    class Meta:
        model = Kind
        fields = ('kind', )

模板 1

{% extends "Главная/Общее.html" %}

{% load static %}
{% load crispy_forms_tags %}

{% block title %}Create an account{% endblock %}

{% block content %}
<h2>Register</h2>

<form id="formm" method="post">
    {% csrf_token %}
    {{ user_form.as_p }}
    {{ kind_form.as_p }}
</form>

<input form="formm" type="submit" value="Register">

{% endblock %}

模板 2

{% extends "Главная/Общее.html" %}

{% block title %}Welcome{% endblock %}

{% block content %}
    <h1>Уважаемый пользователь {{ new_user.first_name }}, мы рассмотрим вашу заявку в течении суток!</h1>
    <p><a href="/">На главную</a>.</p>
{% endblock %}
django django-model
  • 1 个回答
  • 83 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5