как я могу динамически выбрать страницу / продукт в форме django - PullRequest
0 голосов
/ 05 марта 2020

привет, я хочу сэкономить на базе данных, откуда приходит форма с любой страницы (страница - страница продукта), я хочу создать веб-сайт ecomerce (около sh при доставке), и теперь у меня есть особенность, что любой продукт Упорядоченный в этой форме, форма - это работа. Мне нужно только это последнее поле. Идентификатор продукта

проблема, я думаю, есть в представлениях, чтобы увидеть все поля, прокрутите вниз: form = Modelform (request.POST)

     Modelform.Product.filter(id=p_id)
     if form.is_valid():
         post = form.save(commit=False)

         #p_id =Product.objects.filter( id=p_id)
         #Modelform(initial={'p_id':p_id})
         post.save()
   form = Modelform()

модели:

from django.db import models


class Product(models.Model):
    title = models.CharField(max_length=50 , default='product title')
    price = models.CharField(max_length=10 , default= int('0'))
    delPrice = models.CharField(max_length=10, default=int('0'))
    img1 = models.ImageField(upload_to='product_gallry',default='img')
    img2 = models.ImageField(upload_to='product_gallry',default='img')
    img3 = models.ImageField(upload_to='product_gallry',default='img')
    description = models.TextField(max_length=5000 , default='description')
    Video_Link = models.TextField(max_length=5000 , default='Video_Link')

    def __unicode__(self):
        return u'%d' % self.id






class Form (models.Model):
    Product = models.ForeignKey(Product,null=True, blank=True,on_delete=models.SET_NULL)
    name = models.CharField(max_length= 100 , default=None)
    number = models.CharField(max_length=13,default=None)
    adresse = models.CharField(max_length=500,default=None)
    city = models.CharField(max_length=20, default=None)

просмотров:

from .form import  Modelform
from .models import Product , Form
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from django.utils import timezone



def p_page(request,p_id):
   obj = Product.objects.all()
   template = "index.html"
   product = get_object_or_404(obj,id=p_id)
   if request.method =='POST':
     form = Modelform(request.POST)
     Modelform.Product.filter(id=p_id)
     if form.is_valid():
         post = form.save(commit=False)

         #p_id =Product.objects.filter( id=p_id)
         #Modelform(initial={'p_id':p_id})
         post.save()
   form = Modelform()
   context = {
                   'form': form,
                  'product': product,
                  }

   return render(request,template, context,)

form.py:

from django import forms

from . import models
from .models import Product





class Modelform(forms.ModelForm):
    Product = forms.ModelChoiceField(queryset=Product.objects.all(),


                                     )
    name = forms.CharField(max_length=100,
                           widget=forms.TextInput(
                               attrs={
                                   'style': ' height: 20%; display: inline-block; width: 80%; text-align: center; font-size: 30px; margin: 7px 2.5%; float: right; background: white; color: #c50d2c;',
                                   'placeholder': 'Write your name here'

                               }
                           )
                           )
    number = forms.CharField(max_length=13,
                             widget=forms.TextInput(
                                 attrs={
                                     'style': ' height: 20%; display: inline-block; width: 80%; text-align: center; font-size: 30px; margin: 7px 2.5%; float: right; background: white; color: #c50d2c;',
                                     'placeholder': 'Write your name here'

                                 }
                             )
                             )

    adresse = forms.CharField(max_length=500,
                              widget=forms.TextInput(
                                  attrs={
                                      'style': ' height: 20%; display: inline-block; width: 80%; text-align: center; font-size: 30px; margin: 7px 2.5%; float: right; background: white; color: #c50d2c;',
                                      'placeholder': 'Write your name here'

                                  }

                              )
                              )
    city = forms.CharField(max_length=20,
                           widget=forms.TextInput(
                               attrs={
                                   'style': ' height: 20%; display: inline-block; width: 80%; text-align: center; font-size: 30px; margin: 7px 2.5%; float: right; background: white; color: #c50d2c;',
                                   'placeholder': 'Write your name here'

                               }
                           )
                           )


    class Meta:
        model = models.Form
        fields = ['name','number','adresse','city','Product']
...