คำถามติดแท็ก django

Django เป็นเว็บแอปพลิเคชันเฟรมเวิร์กฝั่งเซิร์ฟเวอร์แบบโอเพนซอร์ซเขียนด้วย Python มันถูกออกแบบมาเพื่อลดความพยายามที่จำเป็นในการสร้างเว็บไซต์และแอปพลิเคชั่นที่ขับเคลื่อนด้วยข้อมูลที่ซับซ้อนโดยให้ความสำคัญเป็นพิเศษกับรหัสที่น้อยลงไม่มีความซ้ำซ้อนและชัดเจนกว่าโดยปริยาย

8
จะเข้าถึงองค์ประกอบพจนานุกรมในเทมเพลต Django ได้อย่างไร
ฉันต้องการพิมพ์จำนวนคะแนนที่แต่ละตัวเลือกได้รับ ฉันมีรหัสนี้ในแม่แบบ: {% for choice in choices %} {{choice.choice}} - {{votes[choice.id]}} <br /> {% endfor %} votesเป็นเพียงพจนานุกรมในขณะที่choicesเป็นวัตถุรูปแบบ มันทำให้เกิดข้อยกเว้นด้วยข้อความนี้: "Could not parse the remainder"

9
ข้อผิดพลาดของแอปทดสอบ django - มีข้อผิดพลาดในการสร้างฐานข้อมูลทดสอบ: สิทธิ์ถูกปฏิเสธเพื่อสร้างฐานข้อมูล
เมื่อฉันพยายามทดสอบแอพใด ๆ ด้วยคำสั่ง (ฉันสังเกตว่าเมื่อฉันพยายามปรับใช้ myproject โดยใช้แฟบริคซึ่งใช้คำสั่งนี้): python manage.py test appname ฉันได้รับข้อผิดพลาดนี้: Creating test database for alias 'default'... Got an error creating the test database: permission denied to create database Type 'yes' if you would like to try deleting the test database 'test_finance', or 'no' to cancel syncdbคำสั่งดูเหมือนว่าจะทำงาน การตั้งค่าฐานข้อมูลของฉันใน settings.py: DATABASES …

18
การตรวจสอบ Django CSRF ล้มเหลวด้วยคำขอ Ajax POST
ฉันสามารถใช้ความช่วยเหลือเพื่อให้สอดคล้องกับกลไกการป้องกัน CSRF ของ Django ผ่านทางโพสต์ AJAX ของฉัน ฉันได้ทำตามคำแนะนำที่นี่: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ ฉันได้คัดลอกโค้ดตัวอย่าง AJAX ที่มีในหน้านั้นอย่างแน่นอน: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax ฉันใส่การแจ้งเตือนการพิมพ์เนื้อหาของgetCookie('csrftoken')ก่อนxhr.setRequestHeaderโทรและมันแน่นอนมีประชากรด้วยข้อมูลบางอย่าง ฉันไม่แน่ใจว่าจะยืนยันได้อย่างไรว่าโทเค็นนั้นถูกต้อง แต่ฉันขอแนะนำให้หาและส่งบางสิ่งบางอย่าง แต่ Django ยังคงปฏิเสธโพสต์ AJAX ของฉัน นี่คือ JavaScript ของฉัน: $.post("/memorize/", data, function (result) { if (result != "failure") { get_random_card(); } else { alert("Failed to save card data."); } }); นี่เป็นข้อผิดพลาดที่ฉันเห็นจาก Django: [23 / Feb …
180 python  ajax  django  csrf 

7
เรียกใช้รหัสเมื่อ Django เริ่มครั้งเดียวเท่านั้น?
ฉันกำลังเขียนคลาส Django Middleware ที่ฉันต้องการเรียกใช้งานเพียงครั้งเดียวเมื่อเริ่มต้นเพื่อเริ่มต้นโค้ดอาร์บิทอลอื่น ๆ ผมได้ทำตามวิธีการแก้ปัญหาที่ดีมากโพสต์โดย sdolan ที่นี่แต่ "ฮัลโหล" ข้อความคือการส่งออกไปยังสถานีละสองครั้ง เช่น from django.core.exceptions import MiddlewareNotUsed from django.conf import settings class StartupMiddleware(object): def __init__(self): print "Hello world" raise MiddlewareNotUsed('Startup complete') และในไฟล์การตั้งค่า Django ของฉันฉันมีชั้นเรียนรวมอยู่ในMIDDLEWARE_CLASSESรายการ แต่เมื่อฉันรัน Django โดยใช้ runserver และขอหน้าฉันจะไปที่ terminal Django version 1.3, using settings 'config.server' Development server is running at http://127.0.0.1:8000/ …
177 python  django 

14
จะดึงบันทึกแบบสุ่มโดยใช้ ORM ของ Django ได้อย่างไร
ฉันมีแบบจำลองที่แสดงภาพวาดที่ฉันนำเสนอบนเว็บไซต์ของฉัน ในหน้าเว็บหลักฉันต้องการแสดงบางส่วน: ใหม่ที่สุดหน้าหนึ่งที่ไม่ได้เข้าชมบ่อยครั้งหน้ายอดนิยมและหน้าจอสุ่ม ฉันใช้ Django 1.0.2 ในขณะที่ 3 คนแรกของพวกเขานั้นง่ายต่อการดึงโดยใช้โมเดล django แบบสุดท้าย (แบบสุ่ม) ทำให้ฉันมีปัญหา ฉันสามารถ ofc รหัสในมุมมองของฉันเพื่อสิ่งนี้: number_of_records = models.Painting.objects.count() random_index = int(random.random()*number_of_records)+1 random_paint = models.Painting.get(pk = random_index) มันไม่เหมือนสิ่งที่ฉันต้องการในมุมมองของฉัน - นี่เป็นส่วนหนึ่งของสิ่งที่เป็นนามธรรมและควรจะอยู่ในรูปแบบ นอกจากนี้ที่นี่ฉันต้องดูแลบันทึกที่ถูกลบ (จำนวนระเบียนทั้งหมดจะไม่ครอบคลุมค่าคีย์ที่เป็นไปได้ทั้งหมด) และอาจมีสิ่งอื่น ๆ อีกมากมาย ตัวเลือกอื่น ๆ ที่ฉันสามารถทำได้โดยเฉพาะอย่างยิ่งในสิ่งที่เป็นนามธรรมรุ่น?

8
วิธีเข้าถึงเว็บเซิร์ฟเวอร์ Django ในพื้นที่จากโลกภายนอก
ผมทำตามคำแนะนำของที่นี่จะเรียกใช้ Django python manage.py runserverใช้ในตัวเว็บเซิร์ฟเวอร์และก็สามารถที่จะประสบความสำเร็จใช้โดยใช้ ถ้าฉันเข้าถึง 127.0.0.1: พอร์ตภายในเครื่องจากเว็บเซิร์ฟเวอร์ฉันจะได้หน้า Django ที่ระบุว่าใช้งานได้ ฉันรู้ว่า Django webserver ไม่ใช่เซิร์ฟเวอร์ที่ใช้งานจริง แต่เป็นสิ่งสำคัญสำหรับฉันในการทดสอบเพื่อให้สามารถเข้าถึงได้จากโลกภายนอก - ไม่ใช่จากเว็บเบราว์เซอร์บนเซิร์ฟเวอร์ แต่มาจากคอมพิวเตอร์เครื่องอื่น ฉันเหนื่อย: http://mywebserver:port_django_runs_on แต่มันไม่ทำงาน ฉันพยายามใช้ IP แทน (อ้างอิงจาก ifconfig) เพื่อเข้าถึง: http://myipaddress:port_django_runs_on ซึ่งไม่ได้ผลเช่นกัน เว็บเซิร์ฟเวอร์กำลังทำงานอยู่ดังนั้นจึงต้องสามารถเข้าถึงได้จากภายนอกฉันไม่แน่ใจ ฉันใช้ Linux กับ Apache อยู่แล้ว แต่ฉันยังไม่ได้ปรับแต่ง Django ด้วย Apache ความคิดเห็นใด ๆ เกี่ยวกับวิธีการทำเช่นนี้?
176 python  django 

6
คุณจะบันทึกข้อผิดพลาดของเซิร์ฟเวอร์บนเว็บไซต์ django ได้อย่างไร
ดังนั้นเมื่อเล่นกับการพัฒนาที่ผมก็สามารถกำหนดsettings.DEBUGไปTrueและหากมีข้อผิดพลาด occures ฉันสามารถดูได้จัดรูปแบบเป็นอย่างดีมีร่องรอยดีสแต็คและขอข้อมูล แต่ในเว็บไซต์ผลิตฉันควรใช้DEBUG=Falseและแสดงให้ผู้เยี่ยมชมมีข้อผิดพลาดมาตรฐาน 500 หน้าพร้อมข้อมูลที่ฉันกำลังแก้ไขข้อผิดพลาดนี้ในขณะนี้;) ในขณะเดียวกันฉันต้องการมีวิธีการบันทึกทั้งหมด ข้อมูลเหล่านั้น (การติดตามสแต็คและขอข้อมูล) ไปยังไฟล์บนเซิร์ฟเวอร์ของฉัน - ดังนั้นฉันสามารถส่งออกไปยังคอนโซลของฉันและดูการเลื่อนข้อผิดพลาดส่งอีเมลบันทึกถึงฉันทุกชั่วโมงหรืออะไรทำนองนี้ โซลูชั่นการบันทึกใดที่คุณจะแนะนำสำหรับไซต์ django ซึ่งจะตอบสนองความต้องการง่ายๆเหล่านั้น ฉันมีแอปพลิเคชันทำงานเป็นfcgiเซิร์ฟเวอร์และฉันใช้ apache เว็บเซิร์ฟเวอร์เป็นส่วนหน้า (แม้ว่าจะคิดว่าจะไป lighttpd)

9
Django: เปลี่ยนเส้นทางไปยังหน้าก่อนหน้าหลังจากเข้าสู่ระบบ
ฉันกำลังพยายามสร้างเว็บไซต์อย่างง่ายที่มีฟังก์ชั่นเข้าสู่ระบบคล้ายกับที่นี่ใน SO ผู้ใช้ควรสามารถเรียกดูไซต์ในฐานะผู้ใช้ที่ไม่ระบุชื่อและจะมีลิงค์ล็อกอินในทุกหน้า เมื่อคลิกที่ลิงค์เข้าสู่ระบบผู้ใช้จะถูกนำไปที่แบบฟอร์มการเข้าสู่ระบบ หลังจากเข้าสู่ระบบที่ประสบความสำเร็จผู้ใช้ควรจะกลับไปที่หน้าจากที่เขาคลิกลิงค์เข้าสู่ระบบในสถานที่แรก ฉันคาดเดาว่าฉันจะต้องผ่าน URL ของหน้าปัจจุบันไปยังมุมมองที่จัดการกับแบบฟอร์มการเข้าสู่ระบบ แต่ฉันไม่สามารถทำให้มันใช้งานได้ แก้ไข: ฉันคิดออก ฉันเชื่อมโยงไปยังแบบฟอร์มการเข้าสู่ระบบโดยส่งหน้าปัจจุบันเป็นพารามิเตอร์ GET แล้วใช้ 'ถัดไป' เพื่อเปลี่ยนเส้นทางไปยังหน้านั้น ขอบคุณ! แก้ไข 2: คำอธิบายของฉันดูเหมือนจะไม่ชัดเจนดังนั้นตามที่ขอนี่คือรหัสของฉัน: ให้บอกว่าเราอยู่ในหน้า foo.html และเราไม่ได้เข้าสู่ระบบตอนนี้เราอยากจะมีลิงค์ใน foo.html ที่ลิงค์ เพื่อ login.html ที่นั่นเราสามารถเข้าสู่ระบบแล้วเปลี่ยนเส้นทางกลับไปที่ foo.html ลิงก์ใน foo.html มีลักษณะดังนี้: <a href='/login/?next={{ request.path }}'>Login</a> ตอนนี้ฉันได้เขียนมุมมองเข้าสู่ระบบแบบกำหนดเองที่มีลักษณะเช่นนี้: def login_view(request): redirect_to = request.REQUEST.get('next', '') if request.method=='POST': #create login form... if valid …
175 python  django 

1
จะกรองน้อยกว่าหรือเท่ากับในชุดคำถาม Django ได้อย่างไร
ฉันพยายามกรองผู้ใช้ตามฟิลด์ที่กำหนดเองในโปรไฟล์ผู้ใช้แต่ละโปรไฟล์ที่เรียกว่าโปรไฟล์ ฟิลด์นี้เรียกว่าระดับและเป็นจำนวนเต็มระหว่าง 0-3 หากฉันกรองโดยใช้เท่ากับฉันจะได้รับรายชื่อผู้ใช้ในระดับที่เลือกตามที่คาดไว้: user_list = User.objects.filter(userprofile__level = 0) เมื่อฉันพยายามกรองโดยใช้น้อยกว่า: user_list = User.objects.filter(userprofile__level < 3) ฉันได้รับข้อผิดพลาด: ไม่ได้กำหนดชื่อโกลบอล 'userprofile__level' มีวิธีการกรองโดย <หรือ> หรือฉันเห่าต้นไม้ผิด

6
แนวปฏิบัติที่เหมาะสมที่สุดสำหรับโครงสร้างไดเรกทอรีทำงานของโครงการ Django
ฉันรู้ว่าจริงๆแล้วมันไม่มีทางที่ถูกต้อง อย่างไรก็ตามฉันพบว่ามันยากที่จะสร้างโครงสร้างไดเรกทอรีที่ทำงานได้ดีและยังคงสะอาดสำหรับนักพัฒนาและผู้ดูแลระบบทุกคน มีโครงสร้างมาตรฐานบางอย่างในโครงการส่วนใหญ่บน GitHub แต่จะไม่แสดงวิธีการจัดระเบียบไฟล์อื่นและโครงการทั้งหมดในพีซี วิธีที่สะดวกที่สุดในการจัดระเบียบไดเรกทอรีทั้งหมดเหล่านี้บนเครื่องพัฒนาคืออะไร? คุณตั้งชื่อพวกเขาอย่างไรและคุณเชื่อมต่อและปรับใช้กับเซิร์ฟเวอร์อย่างไร โครงการ (โครงการทั้งหมดที่คุณกำลังทำงานอยู่) ไฟล์ต้นฉบับ (แอปพลิเคชันเอง) สำเนาการทำงานของที่เก็บ (ฉันใช้คอมไพล์) สภาพแวดล้อมเสมือน (ฉันชอบที่จะวางสิ่งนี้ใกล้กับโครงการ) รากคงที่ (สำหรับไฟล์คงที่รวบรวม) media root (สำหรับไฟล์สื่อที่อัพโหลด) README ใบอนุญาต เอกสาร สเก็ตช์ ตัวอย่าง (โครงการตัวอย่างที่ใช้แอปพลิเคชันที่จัดทำโดยโครงการนี้) ฐานข้อมูล (ในกรณีที่ใช้ sqlite) อะไรก็ได้ที่คุณต้องการสำหรับการทำงานในโครงการให้ประสบความสำเร็จ ปัญหาที่ฉันต้องการแก้ไข: ชื่อที่ดีของไดเรกทอรีเพื่อให้วัตถุประสงค์ชัดเจน เก็บไฟล์โครงการทั้งหมด (รวมถึง virtualenv) ไว้ในที่เดียวดังนั้นฉันสามารถคัดลอกย้ายเก็บถาวรลบโครงการทั้งหมดหรือประมาณการการใช้พื้นที่ดิสก์ได้อย่างง่ายดาย การสร้างสำเนาของชุดไฟล์ที่เลือกบางชุดเช่นแอปพลิเคชั่นที่เก็บหรือ virtualenv ทั้งหมดในขณะที่เก็บสำเนาอื่นของไฟล์อื่นที่ฉันไม่ต้องการโคลน การปรับใช้ชุดของไฟล์ที่ถูกต้องไปยังเซิร์ฟเวอร์โดยเพียงแค่เลือกหนึ่ง dir

6
Django: ทำไมฟิลด์บางรุ่นถึงขัดแย้งกัน?
ฉันต้องการสร้างวัตถุที่มี 2 ลิงค์ไปยังผู้ใช้ ตัวอย่างเช่น: class GameClaim(models.Model): target = models.ForeignKey(User) claimer = models.ForeignKey(User) isAccepted = models.BooleanField() แต่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อใช้เซิร์ฟเวอร์: Accessor for clashes 'target' field ที่มีฟิลด์ที่เกี่ยวข้อง 'User.gameclaim_set' เพิ่มอาร์กิวเมนต์ related_name เข้ากับคำจำกัดความของ 'target' การเข้าถึงสำหรับฟิลด์ 'ผู้อ้างสิทธิ์' ที่มีฟิลด์ที่เกี่ยวข้อง 'User.gameclaim_set' เพิ่มอาร์กิวเมนต์ related_name เข้ากับคำจำกัดความของ'aimer ' คุณช่วยอธิบายได้ไหมว่าทำไมฉันถึงได้รับข้อผิดพลาดและวิธีแก้ไข?

5
ฉันจะเรียกคำสั่ง Django Manage.py ที่กำหนดเองได้โดยตรงจากไดรเวอร์ทดสอบได้อย่างไร
ฉันต้องการเขียนการทดสอบหน่วยสำหรับคำสั่ง Django Manage.py ที่ทำหน้าที่แบ็คเอนด์บนตารางฐานข้อมูล ฉันจะเรียกใช้คำสั่งการจัดการโดยตรงจากรหัสได้อย่างไร ฉันไม่ต้องการรันคำสั่งบนเชลล์ของระบบปฏิบัติการจาก tests.py เพราะฉันไม่สามารถใช้สภาพแวดล้อมการทดสอบที่ตั้งค่าโดยใช้การทดสอบ Manage.py (ฐานข้อมูลทดสอบการทดสอบกล่องจดหมายออกอีเมล ฯลฯ )

7
django ข้อผิดพลาด MultiValueDictKeyError ฉันจะจัดการกับมันได้อย่างไร
ฉันพยายามบันทึกวัตถุในฐานข้อมูลของฉัน แต่มันมีMultiValueDictKeyErrorข้อผิดพลาดเกิดขึ้น ปัญหาอยู่ในแบบฟอร์มการis_privateเป็นตัวแทนจากช่องทำเครื่องหมาย หากไม่ได้เลือกช่องทำเครื่องหมายจะไม่มีการส่งผ่านใด ๆ นี่คือข้อผิดพลาดที่ได้รับการโยน ฉันจะจัดการกับข้อยกเว้นนี้อย่างถูกต้องและจับได้อย่างไร บรรทัดคือ is_private = request.POST['is_private']
174 python  django  exception 

14
ฉันจะกรองวันที่ของ DateTimeField ใน Django ได้อย่างไร
ฉันพยายามกรองการDateTimeFieldเปรียบเทียบกับวันที่ ฉันหมายถึง: MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22)) ฉันได้รับรายการชุดแบบสอบถามที่ว่างเปล่าเป็นคำตอบเพราะ (ฉันคิดว่า) ฉันไม่ได้พิจารณาเวลา แต่ฉันต้องการ "ตลอดเวลา" Django มีวิธีที่ง่ายในการทำเช่นนี้หรือไม่? ฉันมีเวลาที่กำหนดไว้ใน datetime มันไม่ใช่ 00:00ก็ไม่ได้เป็น

13
ในวิธีการบันทึก () แบบกำหนดเอง django รุ่นคุณควรระบุวัตถุใหม่ได้อย่างไร
ฉันต้องการเรียกใช้การกระทำพิเศษในวิธีการบันทึก () ของวัตถุโมเดล Django เมื่อฉันบันทึกระเบียนใหม่ (ไม่อัปเดตระเบียนที่มีอยู่) การตรวจสอบ (self.id! = None) เป็นสิ่งที่จำเป็นและเพียงพอที่จะรับประกันว่าการบันทึกข้อมูลตนเองเป็นเรื่องใหม่และไม่มีการปรับปรุงหรือไม่? มีกรณีพิเศษที่อาจมองข้ามไปหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.