У меня есть проект django, над которым я работаю. В этом проекте две модели. Есть модели user
и account
. Я интегрирую наборы представлений django rest framework. Я включу их ниже. Сейчас я интегрирую в проект Django Rest Framework. Я пытаюсь понять, как сделать две вещи.
2 модели:
Пользователь django по умолчанию
Модель учетной записи:
class Account(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
_id = models.CharField(max_length=45)
name = models.CharField(max_length=140)
balance = models.DecimalField(max_digits=100, decimal_places=2)
currency = models.CharField(max_length=12)
bank_name = models.CharField(max_length=120)
routing = models.CharField(max_length=8)
_class = models.CharField(max_length=22)
type = models.CharField(max_length=22)
active = models.BooleanField(default=True)
main = models.BooleanField(default=False)
synapse = models.BooleanField(default=False)
create_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username + ' - ' + self.name + ': ' + str(self.balance)
1 => Я хочу иметь возможность ввести конечную точку /api/users/accounts/omarjandlai
и получить один или несколько учетных записей с помощью внешнего ключа пользователя omarjandali
2 => Я хочу иметь возможность ввести следующий api/users/accounts/
и вернуть все учетные записи, которые есть в базе данных
Я пробовал 4–5 разных способов заставить это работать, но не смог заставить это работать.
Вот мои сериализаторы и представления
сериализаторы:
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = Account
fields = ('user', '_id', 'name', 'balance', 'currency', 'bank_name',
'routing', '_class', 'type', 'active', 'main', 'synapse')
Взгляды:
class AccountViewSet(viewsets.ModelViewSet):
queryset = Account.objects.all();
serializer_class = AccountSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('user',)
что происходит, когда я делаю
api/users/account
я вижу все аккаунты
api/users/account/omarjandali
Я получаю detail not found
URL:
router = DefaultRouter()
router.register(r'users', UserViewSet, basename='user')
router.register(r'accounts', AccountViewSet, basename='account')
urlpatterns = router.urls
urls.py
- person HuLu ViCa   schedule 29.01.2019