مشكلة Method Not Allowed

السلام عليكم:
في الورشة السابقة مطلوب منا كتابة دوال
delete
edit
show
وربطها بـ UI صفحات html الخاصة بالمشروع واجهتني هذه المشكلة بعد تنفيذ طلب التعديل على البوست

وهذا views

هذه النتيجة تظهر بعد طلب التعديل

مرحبا صديقي @SamerElhamdo
عليك بتعريف ال method في ال app.route بهذا الشكل

@app.route("/add_post",methods= [“GET”,“POST”])

2 Likes

إستخدم برنامج Postman لتجربة الدوال

1 Like

أظن أن الخطأ هنا
return redirect(url_for(“home”))
انت كتبتها هكذا
return redirect((“home”))
بالتوفيق

2 Likes

mehtod معرفة أنه في حالتين
اذا كان الطلب post
فيقوم بالتعديل على العنصر في الذاكرة
ثم يتوجه الى الدالة home
التي بدورها تجلب
index وفيه البوستات من الذاكرة بعد التعديل عليها

مع الأسف لم تنجح وهذا خطأ بالفعل لكن لم تعمل الmethod

@app.route("/")
@app.route("/index")
def home():
posts = post_store.get_all()
return render_template(“index.html”, posts = posts)

@app.route("/topic/add", methods=[‘GET’, ‘POST’])
def add_topic():
if request.method == ‘POST’:
new_post = models.Post(request.form[‘title’] , request.form[‘content’])
post_store.add(new_post)
return redirect(url_for(‘home’))
else:
return render_template(“add_topic.html”)

@app.route("/topic/delete/int:id")
def topic_delete(id):
post_store.delete(id)
return redirect(url_for(“home”))

@app.route("/topic/show/int:id")
def show_topic(id):
post = post_store.get_by_id(id)
return render_template(“show.html”, post = post)

@app.route("/topic/edit/int:id")
def edit_topic(id):
post = post_store.get_by_id(id)
if request.method == ‘POST’:
post.title = request.form[‘title’]
post.content = request.form[‘content’]
return redirect(url_for(“home”))
else:
return render_template(“edit.html”, post = post)

@SamerElhamdo هل اشتغل ؟؟

1 Like

شكراً صديقي الحق معك
أنا حاطط شروط مع العلم ما عرفت ال methob في الروت
مشكور جدا جداً

1 Like

نعم أصبح يعمل بشكل جيد

1 Like