首页 > 解决方案 > Django如何在另一个模型中获取模型值?

问题描述

我希望从表单中获取用户名的值作为字符串,以便在我上传图像时将其存储在具有该用户名的子目录中。即如果'bob' 注册了图像应该保存在'static/auth_image/bob/image_name.extension' 中。另外,如果我可以在填写注册表单的过程中做到这一点,那就太好了。

模型.py

class User_data(models.Model):
    username = models.CharField(max_length=256, null=True, blank=True)
    email = models.EmailField(max_length=254, null=True, blank=True)
    four_digit_pass = models.CharField(max_length=256, null=True, blank=True)
    private_key = models.CharField(max_length=256, null=True, blank=True)
    profile_pic = models.ImageField(upload_to='static/profilepic', null=True)
    def getUsername(self):
        return self.username

    def __str__(self):
        return str(self.username)
    
class AuthImages(models.Model):
    owner = models.ForeignKey('User_data', null=True, on_delete=models.CASCADE)
    uname=owner.
    def save_auth_image(self):
        uname = self.username
        self.auth_image_file = models.ImageField(
            upload_to='static/auth_image/%s' % uname, null=True)

表格.py

class RegistrationForm(forms.ModelForm):
    four_digit_pass = forms.CharField(widget=forms.PasswordInput())

    class Meta:
        model = User_data
        fields = ['username', 'email', 'four_digit_pass',
                  'profile_pic', 'private_key']

注册.html

{% extends "storage_app/base.html" %}
{% block body_block %}
<div class="jumbotron">
    <h1>Register Page</h1>
</div>

<div>
    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}

        {{ form.as_p }}
        <p>Private Key should not be changed or shared with anyone</p>
        <button type="submit">Upload</button>
    </form>
</div>

{% endblock body_block %}

在 HTML 中,如果可能的话,我想直接从网络摄像头获取第二个 ie auth_image 的输入

这是我的第一个问题,我也是 Django 的新手,所以如果有更简洁的方法来写这个,请帮助我,并请原谅任何错误。

标签: djangodjango-modelsdjango-rest-frameworkdjango-viewsdjango-forms

解决方案


推荐阅读