EDIT: Sorun çözüldü! Girişiniz için kullanıcı limbolarına teşekkür ederiz. Bu çözüm değildi, ama beni doğru yola yönlendirdi: LEFT JOIN tüm boş gönderileri gösteriyordu! Ayrıca, iyi tanımlanmış bir kontrol olarak iyi tanımlanmış bir kontrol de ekledim.Python - Sadece kullanıcı ipucunun sahibi ise sil tuşu göster
Hedef: Bir ileti sonrası gösterge panosunda, yalnızca oturum açmış olan kullanıcının bu gönderiye sahip olması durumunda silme-sonrası düğmesini göster.
Ne işe yarıyor: Kullanıcı veritabanına bir gönderi oluşturduysa, düğme & işlevini doğru gösterecektir.
Ne başarısız: Kullanıcının veritabanında bir gönderi yok ise, gösterge tablosunda değer içermeyen ve veritabanında olmayan bir 'şablon' iletisi görüntülenir. Tüm kullanıcıların gösterge panolarında, gönderilmeyen kullanıcıyla ilişkili bu 'şablon' yayını görünür. Kullanıcı bir veri tabanını veritabanına oluşturduktan sonra, bu 'şablon' ortadan kalkacak ve silme düğmesi doğru şekilde gösterecektir. Kullanıcının son (veya sadece) gönderisini sildiysem, bu 'şablon' yazısı yeniden görünecektir.
Ne düşünüyorum: 'if' ifademde bir sorun var mı? Kimlerle giriş yaptığımı dikkate almadan, herhangi bir gerçek gönderi olmayan her bir kullanıcı için bu 'şablon' yazısını görüntülediğinden.
dashboard.html
kodum kısaltılmış. sorgusu ile Benim server.py
{% for message in messages: %}
//'mu_id' is messages.user_id as defined in server.py
//'user[0]['id'] is logged-in user id
//using 'session['id'] instead produces same (unwanted) results
{% if message['mu_id'] == user[0]['id']: %}
// show delete button (this part worked, don't worry)
{% endif %}
//this displays each message with poster name
{{message['first_name']}}<br>
{{message['message']}}
{% endfor %}
, kısaltılmış - Bunlar birbirine sadece durumda.
//this query uses session['id'] to grab user data
query = "SELECT * FROM users WHERE id = :id LIMIT 1"
data = {
'id': session['id']
}
user = mysql.query_db(query, data)
// this query joins messages & users tables
mquery = "SELECT first_name, message, messages.id AS message_id, messages.user_id AS mu_id FROM users LEFT JOIN messages ON users.id = messages.user_id"
messages = mysql.query_db(mquery)
//Long query here to get comments, by joining messages & users table to comments table.
return render_template('dashboard.html', user=user, messages=messages, comments=comments)
Teşekkür ederiz!
Bu django değil mi? Django kullanıyorsanız neden mysql kütüphanelerini kullanıyorsunuz? – e4c5
Flask/MySQL/Python kullanan bir öğreticiyi takip ediyorum ve henüz django'ya tanıtılmadım. –
, iyi bir öğretici gibi görünmüyor – e4c5