• 1399/05/24

ارسال اطلاعات چند مدل توسط یک فرم :

درود فراوان بر استاد عزیز و همگی دوستان

استاد خیلی خوشحالیم که حالتون خوب شده. امیدوارم همیشه سالم باشید.

ممنون میشم در خصوص ارسال اطلاعات چند مدل توسط یک فرم مثالی بزنید- چون برای پیاده سازی قسمت محصول به صورت حرفه ای بنده نیاز می بینم که این مورد رو هم یاد بگیرم(البته نه در قالب ادمین اختصاصی)

مثلا ارسال اطلاعات تصاویر مختلف محصول؛ اطلاعات محصول و اطلاعات ویژگیهای محصول توسط یک فرم

 

در mvc این کار رو با viewmodel می تونستم انجام بدم ولی در جنگو نمی دونم - ممنون میشم راهنمایی بفرمایید 

باسپاس فراوان

  • 1399/05/24
  • ساعت 14:31

شما برای این کار باید از inline ها استفاده کنی که دوتا هستن 

1_Stacked :به صورت یک جدول نشون میده

2_Tabular: به صورت یه تب نشون میده

روش استفاده از اون هم خیلی راحت هستش 

اول برین تو فایل ادمین ماژول محصول

برای این کار باید مدلی که میخوایید تو یه صفحه موقع ثبت محصول جدید باشه رو ایمپورت کنید

برای مثال تصاویر مختلف

from my_app.models import product_pictures
from .models import Product
form django import admin
# inline class
class Productinline(admin.TabularInline):
	# اسم مدلی که وقتی میخوایین محصول رو اضافه کنین بشه به اون مدل هم تو یه صفحه درسترسی داشت
	model = from my_app.models import product_pictures

@admin.site.register(Product)
class ProductAdmin(admin.ModelAdmin):
	inlines = [Productinline]

 

بعدش تمومه 

مثلا من خودم اینجا مدل تگ و ویژگی های محصول رو اضافه کردم

 

تصویر کش هم قرار میدم تا اگه از توضیحات من متوجه نشدید اونطوری شاید متوجه شید

و درضمن inlineها تنظیمات دیگه ای هم دارن که میتونید با یه سرچ ساده بخونیشون


  • 1399/05/24
  • ساعت 14:34

البته تو بخش مدلی که بالا نوشتم تو بخش کد پایتون یه اشتباه تایپی هستش 

model = product_pictures

  • 1399/05/24
  • ساعت 15:00

درود فراوان - اولا ممنونم از وقتی که گذاشتید و اطلاعاتی که دادید

بنده سوالم رو ویرایش کردم - منظور در پنل اختصاصی بود 

باز هم ممنونم


  • 1399/05/24
  • ساعت 20:24

سلام دوست من

کافیه یک فرم درست کنین و اطلاعاتی که نیاز دارین رو بهش اضافه کنین و در نهایت در صفحه رندر کنین

دقیقا مانند کاری که با صفحه ی لاگین انجام دادیم


  • 1399/05/24
  • ساعت 21:26

درود آقای باقری

برای استفاده از Tabular باید مدل ها با هم رابطه داشته باشند ، در غیر اینصورت نمی زاره از Tabular استفاده کنین و خودش می گه که باید ForiegnKey یا دیگر روابط بین شون باشه.

 

 

 


  • 1399/05/24
  • ساعت 21:33

آقای جانی نژاد من توضیح استاد کامل کنم، شما فرم هاتون رو با هر فیلدی که خواستین و نیاز داشتین توی صفحه قرار بدین و توی view مورد نظر،برای هر مدل اطلاعات لازمشو با cleane_data دریافت کنین و به مدل مربوطه پاس بدین.

مثلا میتونین هنگام خرید که به جز جزییات خرید اسم و آدرس ایمیل کاربرو دریافت می کنین به محصول یک آی دی هم براش بسازین و همون جا رجیسترش کنین.


  • 1399/05/24
  • ساعت 22:07

*مثلا میتونین هنگام خرید که به جز جزییات خرید اسم و آدرس ایمیل کاربرو دریافت می کنین برای مشتری یک آی دی هم براش بسازین و همون جا رجیسترش کنین.


  • 1399/05/25
  • ساعت 15:13

ممنونم از استاد عزیز و جناب آقای سینا کریمی عزیز

استنباط بنده از فرمایشات شما عزیزان به صورت زیر بوده است

مثلا 3 تا مدل داریم : 

1- اطلاعات محصول

2-تصاویر اضافی

3-ویژگیهای محصول

و می خواهیم اطلاعات هر سه مدل را در یک صفحه توسط یک فرم ذخیره کنیم:

 این صورت که می تونیم یک فرم کلی از این سه مدل بسازیم و اطلاعات دریافت شده از سه مدل را توسط آن فرم دریافت و در دیتابیس ذخیر نماییم.

بسیار سپاسگذارم


  • 1399/05/26
  • ساعت 09:10

بله درسته