What is the best approach to design model fields that is like a list in Django?
I think the best way to organize your 'SysApp - documents' relationship, assuming that each document is related to only one sysapp, is to use ForeignKey, as you mentioned. 
In that case you'll only have to create 2 models: the first one is SysApp with a name field and the second is Document with fields title, url to file, description and a foreignkey to SysApp. Now you can create documents and attach them to the sys you want. So you do not need to specify document_2, document_3 etc. fields.
If you need to attach one document to more than one sysapp use ManyToMany instead of ForeignKey.
Let's say I have a model called 'SysApp'. Each system has 5 documents. Each document has fields:

Title
URL to the file (external url)
Description 

Rather than defining multiple fields like 

title_1, 
url_1,  
description_1,
title_2, 
url_2, 
description_2
(Hardcoded approach)

is there a better way to handle this type of use case?
One way of doing is to create a model storing each document and then SysApp will reference each document using a ForeignKey. However I still have to create field like document_1, document_2 etc. Also it would be quite difficult for editors to manage when there are 100+ SysApp and 3-400+ documents.
Is it possible to manage these fields like a list or dictionary?
Thank you