سلام
استاد من الان صفحه ی کانتکت رو پیاده سازی کردم فرم هارو هم کامل کردم عینه اونی که آموزش دادین
الان من میخوام بعد اینکه کاربر ارسال رو زد دوباره برگرده به همون فرم و یه متن سبز رنگ اضافه شه به فرم که پیام با موفقیت ارسال شد
چجوری باید همچین چیزیو پیاده سازی کنم
از اپ messages خود جنگو استفاده کن.
انگلیسی سرچ کن آموزشش هست
دمت گرم اوکی شد فقط من از اون فیلمی که اینو درست کردم بعد اینکه این کدارو انداخت و یه پیامی ارسال شد این پیام اومد و وقتیم یه بار صفحرو رفرش کرد اون پیام دیگه نبود ولی من بعد اینکه پیام ارسال شد این میاد ولی هرچقدر رفرش میکنم این پیام هنوز هست تا وقتی که ازون صفحه کلا یه بار برم بیرون و دوباره بیام چیکار کنم تا با یه رفرش اون پیام نباشه
کدامم میزارم ممنون میشم با همینا راهنماییم کنید
views
def contact_page(request):
contact_form = CreateContactForm(request.POST or None)
if contact_form.is_valid():
full_name = contact_form.cleaned_data.get('full_name')
email = contact_form.cleaned_data.get('email')
subject = contact_form.cleaned_data.get('subject')
text = contact_form.cleaned_data.get('text')
ContactUs.objects.create(full_name=full_name, email=email, subject=subject, text=text, is_read=False)
# todo : show user a success message
contact_form = CreateContactForm()
messages.success(request, 'پیام با موفقیت ارسال شد!')
context = {
'contact_form': contact_form,
}
return render(request, 'contact-us.html', context)
template
<form id="contact" action="" method="post">
{% csrf_token %}
{% if messages %}
<ul class="message">
{% for message in messages %}
<li style="padding: 0" {% if message.tag %}
class="{{ message.tag }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
<fieldset>
{{ contact_form.full_name }}
{% for error in contact_form.full_name.errors %}
<p class="text-danger">{{ error }}</p>
{% endfor %}
</fieldset>
<fieldset>
{{ contact_form.email }}
{% for error in contact_form.email.errors %}
<p class="text-danger">{{ error }}</p>
{% endfor %}
</fieldset>
<fieldset>
{{ contact_form.phone }}
{% for error in contact_form.phone.errors %}
<p class="text-danger">{{ error }}</p>
{% endfor %}
</fieldset>
<fieldset>
{{ contact_form.subject }}
{% for error in contact_form.subject.errors %}
<p class="text-danger">{{ error }}</p>
{% endfor %}
</fieldset>
<fieldset>
{{ contact_form.text }}
{% for error in contact_form.text.errors %}
<p class="text-danger">{{ error }}</p>
{% endfor %}
</fieldset>
<fieldset>
<button name="submit" type="submit" id="contact-submit" data-submit="...Sending">ارسال پیام
</button>
</fieldset>
<ul class="mt-3">
<li class="messages">صبور باشید پاسخگو هستیم!</li>
<li class="messages">ایپی شما در سرور ثبت میگردد!</li>
<li class="messages">در صورت ارسال با ایمیل فیک پیام پاسخ داده نمیشیود!</li>
</ul>
</form>
هنوز نتونستم درستش کنم ممنون میشم یکی میدونست با کدایه خودم حالیم کنه
زمانی که صفحه رو رفرش میکنین، چون حالت قبلی مرورگر روی اکشن Post تنظیم شده، درخواست reload صفحه به صورت post بهش ارسال میشه
یکی از روش ها برای برطرف کردن این مشکل اینه که در قسمت request.POST ( گزاره ی شرطی ) بعد از اتمام عملیات، کاربر رو Redirect کنین به صفحه ای که مورد نظرتون هستش