, предполагая, что вы можете получить указатели на relavent указатели функций на системные вызовы open
/ read
/ close
, вы можете сделать что-то вроде этого:
mm_segment_t fs = get_fs();
set_fs(KERNEL_DS);
fd = (*syscall_open)(file, flags, mode);
if(fd != -1) {
(*syscall_read)(fd, buf, size);
(*syscall_close)(fd);
}
set_fs(fs);
вам нужно будет создайте «syscall_*
» указатели на функции, которые я показал. Я уверен, что есть лучший способ, но я считаю, что это сработает.
Прежде всего, ваше get_username_field бесполезно.
В вашем views.py,
class UserPostListView(ListView):
model = Profile
template_name = 'website/user_posts.html'
context_object_name = 'user_content'
allow_empty = False #this will show 404 if the username does not exists
def get_queryset(self):
return User.objects.filter(username=self.kwargs['username'])
# you can do it in one line now
Теперь, чтобы показать это в html,
{% for user in user_content %}
{{user.get_full_name}}
# rest of your code
{% endfor %}
Вы также можете показывать сообщения этого конкретного пользователя так же, как и выше. [ 115]
user
всегда является текущим вошедшим пользователем. Ваш вид использует модель профиля, поэтому вы можете получить доступ к profile
или object
.
{{ profile.user.get_full_name }}
{{ profile.age }}
Обратите внимание, ваш метод get_username_field
никогда не вызывается и ничего не делает; Вы должны удалить его.
Заметьте также, что на самом деле не очень хорошая идея хранить age
как целое число в базе данных. Это означает, что вам как-то приходится обновлять его каждый год, так как люди имеют странную привычку стареть ... Лучше хранить дату рождения и иметь метод для отображения возраста.