我試著用django檔案欄位上傳了一張圖片
。
而在我的models.py檔案中
class Students(models.Model)。
id = models.AutoField(primary_key=True)
admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
gender = models.CharField(max_length=255)
profile_picture = models.FileField()
objects = models.Manager()
并且在專案的urls.py檔案中
urlpatterns = [
path('admin/', admin.site.urls)。
path('', include('student_management_app.urls') )。)
] static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) static(settings.STATIC_URL, document_root=settings.STATIC_FILE_ROOT)
在我的setting.py檔案中,我是這樣指定目錄的
。
MEDIA_URL = '/media/'。
MEDIA_ROOT = os.path.join(BASE_DIR, "media"/span>)
STATIC_URL = "/static/'"。
STATIC_FILE_ROOT = os.path.join(BASE_DIR, "static")
staticfiles_dirs = [
os.path.join(BASE_DIR, 'static'),
]
而在模板頁面中,我試圖查看被上傳到媒體檔案夾的圖片
<tbody>
{% for student in students %}.
<tr>
<td>{{ student.admin.id }}</td>
<td><img src ="{{ student.profile_picture }}" style="width: 100px"> </td>
<td>{{ student.admin.first_name }}</td>
<td>{{ student.admin.last_name }}</td>
<td>{{ student.gender }}</td>
<td>{{學生.地址 }}</td>
<td>{{ student.admin.email }}</td>
<td>{{ student.course_id.course_name}}</td>
<td>{{ student.session_start_year }}</td>
<td>{{ student.session_end_year }}</td>
<td>{{ student.admin.date_joined }}</td>
<td>{{ student.admin.last_login }}</td>
<td><a href="/EditStudent/{{ student.admin.id }}" class="btn btn-primary"> Edit</a> </td>。
<td><a href="/DeleteStudent/{{ student.admin.id }}" class="btn btn-danger"> Delete</a> < /td>
</tr>
{% endfor %}
</tbody>
圖片被完美上傳,但我無法現在的模板看起來像這樣在模板中查看它們 追蹤結果顯示
11/Sep/2021 18: 32:30] "GET /media/010040.jpg HTTP/1.1" 302 0
[11/Sep/2021 18:32:30] "GET /media/1580467939054_Anitha.jpg HTTP/1.1" 302 0]
[11/Sep/2021 18:32:30] "GET /media/1580467939054_Anitha_mM61nlO.jpg HTTP/1.1" 302 0
***
app urls.py
***
from django.conf.urls import url
from django.urls import path
from . import views, AdminViews, StaffViews, StudentViews
urlpatterns = [
path('demo', views.demo, name='demo') 。
path('DoLogin', views.DoLogin, name='DoLogin') 。
path('LoginPage', views.LoginPage, name='LoginPage') 。
path('GetUserDetails', views.GetUserDetails, name='GetUserDetails') 。
path('LogoutUser', views.LogoutUser, name='LogoutUser') 。
path('admin_home', views.admin_home, name='admin_home') 。
path('AddStaff', views.AddStaff, name='AddStaff') 。
path('AddStaffSave', views.AddStaffSave, name='AddStaffSave') 。
path('AddCourse', views.AddCourse, name ='AddCourse') 。
path('AddCourseSave', views.AddCourseSave, name='AddCourseSave') 。
path('AddSubject', views.AddSubject, name ='AddSubject') 。
path('AddSubjectSave', views.AddSubjectSave, name='AddSubjectSave') 。
path('AddStudent', views.AddStudent, name='AddStudent') 。
path('AddStudentSave', views.AddStudentSave, name='AddStudentSave') 。
path('ManageStaff', views.ManageStaff, name='ManageStaff') 。
path('ManageStudent', views.ManageStudent, name='ManageStudent') 。
path('ManageCourse', views.ManageCourse, name='ManageCourse') 。
path('ManageSubject', views.ManageSubject, name='ManageSubject') 。
path('EditStaff/<str:staff_id>', views.EditStaff, name='EditStaff') 。
path('EditStaffSave', views.EditStaffSave, name='EditStaffSave') 。
path('EditStudent/<str:student_id>', views.EditStudent, name='EditStudent') 。
path('EditStudentSave', views.EditStudentSave, name='EditStudentSave') 。
path('EditCourse/<str:course_id>', views.EditCourse, name='EditCourse') 。
path('EditCourseSave', views.EditCourseSave, name='EditCourseSave') 。
path('EditSubject/<str:subject_id>', views.EditSubject, name='EditSubject') 。
path('EditSubjectSave', views.EditSubjectSave, name='EditSubjectSave') 。
path('DeleteStaff/<str:staff_id>', views.DeleteStaff, name='DeleteStaff') 。
path('DeleteStudent/<str:student_id>', views.DeleteStudent, name='DeleteStudent') 。
path('DeleteCourse/<str:course_id>', views.DeleteCourse, name='DeleteCourse') 。
path('DeleteSubject/<str:subject_id>', views.DeleteSubject, name='DeleteSubject') 。
path('StaffHome', views.StaffHome, name='StaffHome') 。
path('StudentHome', views.StudentHome, name='StudentHome') 。
]
當我檢查源代碼中的模板代碼時,圖片鏈接是 顯示為 路徑顯示兩個媒體,這是問題所在嗎
。
`<td><img src ="/media/media/1580467939054_Anitha_wjltRgu.jpg"/span> style="width: 100px"/span>> < /td> `
有人能幫助我嗎?
uj5u.com熱心網友回復:
你應該用圖片的.url來作業,所以:
<img src="{{ student.profile_picture.url }}">
在你的模板中,你用看起來像GET的請求來編輯/洗掉專案,為了編輯資料,應該使用POST、PUT或PATCH請求,而洗掉一個資料條目應該用POST或DELETE請求完成。
uj5u.com熱心網友回復:
試試這個 :
<td><img src ="{{ student.profile_picture.url }}"/span> style="width: 100px"/span>> < /td>
uj5u.com熱心網友回復:
你的代碼有很多問題:
1在你的模型中,使用圖片上傳的欄位ImageField(要使用ImageField,你需要安裝Pillow):
profile_picture=models.ImageField(upload_to="images", null=True, blank=True)
2-你必須使用一個具有以下屬性的表單:
enctype="multipart/form-data"。
method="post"。
注釋:
在shell django中,我們有以下幾點:
假設upload_to='images':
>>> student.profile_picture
<ImageFieldFile: images/cat.jpg>
>>>學生.profile_picture.url
'http://yourDomain/media/images/cat.jpg'/span>
>>>學生.profile_picture.path
'media/images/cat.jpg'。
>>>學生.profile_picture.name
'images/cat.jpg'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/316115.html
標籤:
