当自定义管理站点时,我们可以使用list或tuple喜欢
@admin.register(Model_name)
class Model_nameAdmin(admin.ModelAdmin):
list_display = ['a', 'b', 'c'] # using list
# lets say a, b, c are fields of model(Model_name)
or
list_display = ('a', 'b', 'c') # using tuple
Run Code Online (Sandbox Code Playgroud)
我很好奇使用列表与元组相比是否有任何区别,反之亦然,例如在检索管理站点或类似内容时的性能。我知道元组比列表的性能更好,但我们不会在这里循环。我查看了列表和元组之间的区别是什么,为什么-django-use-tuples-for-settings-and-not-lists, 为什么-djangos-modeladmin-uses-lists-over -元组,反之亦然,但没有得到我的答案。一直使用元组更好吗?我专门询问管理网站。
我正在开发一个学校管理项目,想要上传 CSV 文件并通过覆盖当前数据或在数据库中更新它来保存它。但它没有被添加到数据库中。另外,我喜欢添加更多字段,因此如果可能的话使用动态(即通过循环),这样我以后就不必更改它。
models.py
class Student(models.Model):
registration_number = models.CharField(max_length=200, unique=True)
firstname = models.CharField(max_length=200)
surname = models.CharField(max_length=200)
date_of_birth = models.DateField(default=timezone.now)
current_class = models.ForeignKey(StudentClass, on_delete=models.SET_NULL, blank=True, null=True)
date_of_admission = models.DateField(default=timezone.now)
parent_mobile_number = models.CharField(max_length=15)
address = models.TextField()
class StudentBulkUpload(models.Model):
date_uploaded = models.DateTimeField(auto_now=True)
csv_file = models.FileField(upload_to='students/bulkupload/')
Run Code Online (Sandbox Code Playgroud)
forms.py
class StudentBulkUploadForm(forms.ModelForm):
class Meta:
model = StudentBulkUpload
fields = ("csv_file",)
Run Code Online (Sandbox Code Playgroud)
views.py
def uploadcsv(request):
if request.method == 'GET':
form = StudentBulkUploadForm()
return render(request, 'students/students_upload.html', {'form':form})
# If not GET method then proceed
try:
form = StudentBulkUploadForm(data=request.POST, files=request.FILES)
if …Run Code Online (Sandbox Code Playgroud) 我想创建一个 user_posts 视图,其中包含与特定用户相关的所有帖子,假设有用户“Natsu”撰写的博客帖子,那么登录用户“Testuser”将能够查看所有帖子由该用户即用户“Natsu”的所有帖子。
blog models.py
class Post(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')
body = models.TextField()
Run Code Online (Sandbox Code Playgroud)
user models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(upload_to='profile_pic', default='default.jpg')
def __str__(self):
return f'{ self.user.username } Profile'
Run Code Online (Sandbox Code Playgroud)
views.py
def user_posts(request, username):
posts = Post.objects.filter(author=username)
return render(request, 'blog/user_posts.html', {'posts':posts})
Run Code Online (Sandbox Code Playgroud)
user_posts.html
{% for post in posts %}
<a href="{% url 'user-posts' post.author.username %}" class="mr-2">{{ post.author }}</a>
<h2><a href="{% url 'post-detail' post.pk %}">{{ post.title }}</a></h2>
{{ post.body|truncatewords:30 }}
{% …Run Code Online (Sandbox Code Playgroud)