как я могу поместить сами поля на страницу HTML, а не значения полей? [Джанго] - PullRequest
0 голосов
/ 06 февраля 2020

в этом вопросе мне нужно поместить поле изображения на этой странице. Мне нужно сделать что-то вроде учетной записи Facebook, когда кому-то нужно изменить изображение учетной записи, он может выбрать одно из изображений на своем компьютере, и когда это сделать, страница перенаправляет его c page Примечание : Мне нужно получить это поле от моделей, а не форм , этот код также требует от меня усердия, я уверен, что получаю большую ошибку, поэтому если кто-то может помочь

views.py

class AddImage(AddNewImage):
    template_name = 'account/userprofile_form.html'
    form = AddNewImage

    def my_view(self, request, user_id):
        forms = self.form(instance=UserProfile.objects.filter(id=user_id))
        return render(request, self.template_name, {'forms': forms})

    def post(self, request):
        form = self.form(request.POST)
        if form.is_valid():
            form.save()
            return redirect('account:view_profile')

forms.py

# Add new logo and replace it with old logo
class AddNewImage(forms.ModelForm):

    class Meta:
        model = UserProfile
        fields = ['logo']

urls.py

urlpatterns = [
    path('new-image/<int:user_id>', views.AddImage, name="add_new_image"),
]

userprofile_form. html* профиль 1016 *

{% extends 'base.html' %}
{% block title %} Add New Image {% endblock %}

{% block body %}
    <div class="add-image">
        <div class="container">
            <form method="post" enctype="multipart/form-data">
                {% csrf_token %}
                {% for form in forms %}
                    {{ form }}
                {% endfor %}
                <input type="submit" class="btn btn-success">
            </form>
        </div>
    </div>
{% endblock %}

models.py

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


class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    overview = models.TextField(editable=True, help_text="This field is important to make the viewers know you and your experience")
    city = models.CharField(max_length=20)
    phone = models.IntegerField(default=0)
    logo = models.ImageField(default='default-logo.jpg')

. html

{% extends 'base.html' %}
{% block title %} Your Profile {% endblock %}

{% block body %}

    <div class="profile">
        <div class="container">
            <div class="jumbotron">
                <div class="logo-image text-center fl-right">
                    {% if user.userprofile.logo %}
                    <div class="my-image">
                        <a href="{% url 'account:user_image' request.user.id %}">
                            <img class="img-responsive" src="{{ user.userprofile.logo.url }}">
                        </a>
                        <span>
                            <a href="{% url 'account:add_new_image' request.user.id %}" class="fa fa-plus fa-1x text-center"></a>
                        </span>
                    </div>
                    {% else %}
                    {% load staticfiles %}
                    <img class="img-responsive img-thumbnail" src="{% static 'index/images/default-logo.jpg' %}">
                    {% endif %}
                    <span>{{ user.first_name }} {{ user.last_name }}</span>
                </div>
                <div class="fl-left">
                    <h2>Overview</h2>
                    <p>{{ user.userprofile.overview }}</p>
                </div>
                <div class="clearfix"></div>
            </div>
        </div>
    </div>
{% endblock %}

в профиле. html целевая ссылка, которую я спрашиваю о нем, :

                <span>
                    <a href="{% url 'account:add_new_image' request.user.id %}" class="fa fa-plus fa-1x text-center"></a>
                </span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...